Merge branch 'master' into ops/esplora-unix-sockets

This commit is contained in:
wiz 2023-04-03 15:34:47 +09:00 committed by GitHub
commit bdb7e62921
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
88 changed files with 5614 additions and 2576 deletions

6627
backend/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{ {
"name": "mempool-backend", "name": "mempool-backend",
"version": "2.5.0-dev", "version": "2.6.0-dev",
"description": "Bitcoin mempool visualizer and blockchain explorer backend", "description": "Bitcoin mempool visualizer and blockchain explorer backend",
"license": "GNU Affero General Public License v3.0", "license": "GNU Affero General Public License v3.0",
"homepage": "https://mempool.space", "homepage": "https://mempool.space",
@ -34,35 +34,35 @@
"prettier": "./node_modules/.bin/prettier --write \"src/**/*.{js,ts}\"" "prettier": "./node_modules/.bin/prettier --write \"src/**/*.{js,ts}\""
}, },
"dependencies": { "dependencies": {
"@babel/core": "^7.20.12", "@babel/core": "^7.21.3",
"@mempool/electrum-client": "^1.1.7", "@mempool/electrum-client": "1.1.9",
"@types/node": "^16.18.11", "@types/node": "^18.15.3",
"axios": "~0.27.2", "axios": "~0.27.2",
"bitcoinjs-lib": "~6.1.0", "bitcoinjs-lib": "~6.1.0",
"crypto-js": "~4.1.1", "crypto-js": "~4.1.1",
"express": "~4.18.2", "express": "~4.18.2",
"maxmind": "~4.3.8", "maxmind": "~4.3.8",
"mysql2": "~2.3.3", "mysql2": "~3.2.0",
"node-worker-threads-pool": "~1.5.1", "node-worker-threads-pool": "~1.5.1",
"socks-proxy-agent": "~7.0.0", "socks-proxy-agent": "~7.0.0",
"typescript": "~4.7.4", "typescript": "~4.7.4",
"ws": "~8.11.0" "ws": "~8.13.0"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.20.7", "@babel/core": "^7.21.3",
"@babel/code-frame": "^7.18.6", "@babel/code-frame": "^7.18.6",
"@types/compression": "^1.7.2", "@types/compression": "^1.7.2",
"@types/crypto-js": "^4.1.1", "@types/crypto-js": "^4.1.1",
"@types/express": "^4.17.15", "@types/express": "^4.17.15",
"@types/jest": "^29.2.5", "@types/jest": "^29.5.0",
"@types/ws": "~8.5.4", "@types/ws": "~8.5.4",
"@typescript-eslint/eslint-plugin": "^5.48.1", "@typescript-eslint/eslint-plugin": "^5.55.0",
"@typescript-eslint/parser": "^5.48.1", "@typescript-eslint/parser": "^5.55.0",
"eslint": "^8.31.0", "eslint": "^8.36.0",
"eslint-config-prettier": "^8.5.0", "eslint-config-prettier": "^8.7.0",
"jest": "^29.3.1", "jest": "^29.5.0",
"prettier": "^2.8.2", "prettier": "^2.8.4",
"ts-jest": "^29.0.3", "ts-jest": "^29.0.5",
"ts-node": "^10.9.1" "ts-node": "^10.9.1"
} }
} }

View File

@ -1,4 +1,5 @@
import config from '../config'; import config from '../config';
import logger from '../logger';
import { TransactionExtended, MempoolBlockWithTransactions } from '../mempool.interfaces'; import { TransactionExtended, MempoolBlockWithTransactions } from '../mempool.interfaces';
const PROPAGATION_MARGIN = 180; // in seconds, time since a transaction is first seen after which it is assumed to have propagated to all miners const PROPAGATION_MARGIN = 180; // in seconds, time since a transaction is first seen after which it is assumed to have propagated to all miners
@ -39,17 +40,19 @@ class Audit {
} else { } else {
isCensored[txid] = true; isCensored[txid] = true;
} }
displacedWeight += mempool[txid].weight; displacedWeight += mempool[txid]?.weight || 0;
} else { } else {
matchedWeight += mempool[txid].weight; matchedWeight += mempool[txid]?.weight || 0;
} }
projectedWeight += mempool[txid].weight; projectedWeight += mempool[txid]?.weight || 0;
inTemplate[txid] = true; inTemplate[txid] = true;
} }
if (transactions[0]) {
displacedWeight += (4000 - transactions[0].weight); displacedWeight += (4000 - transactions[0].weight);
projectedWeight += transactions[0].weight; projectedWeight += transactions[0].weight;
matchedWeight += transactions[0].weight; matchedWeight += transactions[0].weight;
}
// we can expect an honest miner to include 'displaced' transactions in place of recent arrivals and censored txs // we can expect an honest miner to include 'displaced' transactions in place of recent arrivals and censored txs
// these displaced transactions should occupy the first N weight units of the next projected block // these displaced transactions should occupy the first N weight units of the next projected block
@ -59,20 +62,25 @@ class Audit {
let failures = 0; let failures = 0;
while (projectedBlocks[1] && index < projectedBlocks[1].transactionIds.length && failures < 500) { while (projectedBlocks[1] && index < projectedBlocks[1].transactionIds.length && failures < 500) {
const txid = projectedBlocks[1].transactionIds[index]; const txid = projectedBlocks[1].transactionIds[index];
const fits = (mempool[txid].weight - displacedWeightRemaining) < 4000; const tx = mempool[txid];
const feeMatches = mempool[txid].effectiveFeePerVsize >= lastFeeRate; if (tx) {
const fits = (tx.weight - displacedWeightRemaining) < 4000;
const feeMatches = tx.effectiveFeePerVsize >= lastFeeRate;
if (fits || feeMatches) { if (fits || feeMatches) {
isDisplaced[txid] = true; isDisplaced[txid] = true;
if (fits) { if (fits) {
lastFeeRate = Math.min(lastFeeRate, mempool[txid].effectiveFeePerVsize); lastFeeRate = Math.min(lastFeeRate, tx.effectiveFeePerVsize);
} }
if (mempool[txid].firstSeen == null || (now - (mempool[txid]?.firstSeen || 0)) > PROPAGATION_MARGIN) { if (tx.firstSeen == null || (now - (tx?.firstSeen || 0)) > PROPAGATION_MARGIN) {
displacedWeightRemaining -= mempool[txid].weight; displacedWeightRemaining -= tx.weight;
} }
failures = 0; failures = 0;
} else { } else {
failures++; failures++;
} }
} else {
logger.warn('projected transaction missing from mempool cache');
}
index++; index++;
} }
@ -108,20 +116,25 @@ class Audit {
index = projectedBlocks[0].transactionIds.length - 1; index = projectedBlocks[0].transactionIds.length - 1;
while (index >= 0) { while (index >= 0) {
const txid = projectedBlocks[0].transactionIds[index]; const txid = projectedBlocks[0].transactionIds[index];
const tx = mempool[txid];
if (tx) {
if (overflowWeightRemaining > 0) { if (overflowWeightRemaining > 0) {
if (isCensored[txid]) { if (isCensored[txid]) {
delete isCensored[txid]; delete isCensored[txid];
} }
if (mempool[txid].effectiveFeePerVsize > maxOverflowRate) { if (tx.effectiveFeePerVsize > maxOverflowRate) {
maxOverflowRate = mempool[txid].effectiveFeePerVsize; maxOverflowRate = tx.effectiveFeePerVsize;
rateThreshold = (Math.ceil(maxOverflowRate * 100) / 100) + 0.005; rateThreshold = (Math.ceil(maxOverflowRate * 100) / 100) + 0.005;
} }
} else if (mempool[txid].effectiveFeePerVsize <= rateThreshold) { // tolerance of 0.01 sat/vb + rounding } else if (tx.effectiveFeePerVsize <= rateThreshold) { // tolerance of 0.01 sat/vb + rounding
if (isCensored[txid]) { if (isCensored[txid]) {
delete isCensored[txid]; delete isCensored[txid];
} }
} }
overflowWeightRemaining -= (mempool[txid]?.weight || 0); overflowWeightRemaining -= (mempool[txid]?.weight || 0);
} else {
logger.warn('projected transaction missing from mempool cache');
}
index--; index--;
} }

View File

@ -16,7 +16,7 @@ class BitcoindElectrsApi extends BitcoinApi implements AbstractBitcoinApi {
super(bitcoinClient); super(bitcoinClient);
const electrumConfig = { client: 'mempool-v2', version: '1.4' }; const electrumConfig = { client: 'mempool-v2', version: '1.4' };
const electrumPersistencePolicy = { retryPeriod: 10000, maxRetry: 1000, callback: null }; const electrumPersistencePolicy = { retryPeriod: 1000, maxRetry: Number.MAX_SAFE_INTEGER, callback: null };
const electrumCallbacks = { const electrumCallbacks = {
onConnect: (client, versionInfo) => { logger.info(`Connected to Electrum Server at ${config.ELECTRUM.HOST}:${config.ELECTRUM.PORT} (${JSON.stringify(versionInfo)})`); }, onConnect: (client, versionInfo) => { logger.info(`Connected to Electrum Server at ${config.ELECTRUM.HOST}:${config.ELECTRUM.PORT} (${JSON.stringify(versionInfo)})`); },

View File

@ -2,7 +2,7 @@ import config from '../config';
import bitcoinApi, { bitcoinCoreApi } from './bitcoin/bitcoin-api-factory'; import bitcoinApi, { bitcoinCoreApi } from './bitcoin/bitcoin-api-factory';
import logger from '../logger'; import logger from '../logger';
import memPool from './mempool'; import memPool from './mempool';
import { BlockExtended, BlockExtension, BlockSummary, PoolTag, TransactionExtended, TransactionStripped, TransactionMinerInfo } from '../mempool.interfaces'; import { BlockExtended, BlockExtension, BlockSummary, PoolTag, TransactionExtended, TransactionStripped, TransactionMinerInfo, CpfpSummary } from '../mempool.interfaces';
import { Common } from './common'; import { Common } from './common';
import diskCache from './disk-cache'; import diskCache from './disk-cache';
import transactionUtils from './transaction-utils'; import transactionUtils from './transaction-utils';
@ -200,8 +200,15 @@ class Blocks {
extras.segwitTotalWeight = 0; extras.segwitTotalWeight = 0;
} else { } else {
const stats: IBitcoinApi.BlockStats = await bitcoinClient.getBlockStats(block.id); const stats: IBitcoinApi.BlockStats = await bitcoinClient.getBlockStats(block.id);
extras.medianFee = stats.feerate_percentiles[2]; // 50th percentiles let feeStats = {
extras.feeRange = [stats.minfeerate, stats.feerate_percentiles, stats.maxfeerate].flat(); medianFee: stats.feerate_percentiles[2], // 50th percentiles
feeRange: [stats.minfeerate, stats.feerate_percentiles, stats.maxfeerate].flat(),
};
if (transactions?.length > 1) {
feeStats = Common.calcEffectiveFeeStatistics(transactions);
}
extras.medianFee = feeStats.medianFee;
extras.feeRange = feeStats.feeRange;
extras.totalFees = stats.totalfee; extras.totalFees = stats.totalfee;
extras.avgFee = stats.avgfee; extras.avgFee = stats.avgfee;
extras.avgFeeRate = stats.avgfeerate; extras.avgFeeRate = stats.avgfeerate;
@ -403,12 +410,13 @@ class Blocks {
try { try {
// Get all indexed block hash // Get all indexed block hash
const unindexedBlockHeights = await blocksRepository.$getCPFPUnindexedBlocks(); const unindexedBlockHeights = await blocksRepository.$getCPFPUnindexedBlocks();
logger.info(`Indexing cpfp data for ${unindexedBlockHeights.length} blocks`);
if (!unindexedBlockHeights?.length) { if (!unindexedBlockHeights?.length) {
return; return;
} }
logger.info(`Indexing cpfp data for ${unindexedBlockHeights.length} blocks`);
// Logging // Logging
let count = 0; let count = 0;
let countThisRun = 0; let countThisRun = 0;
@ -558,7 +566,7 @@ class Blocks {
} }
while (this.currentBlockHeight < blockHeightTip) { while (this.currentBlockHeight < blockHeightTip) {
if (this.currentBlockHeight < blockHeightTip - config.MEMPOOL.INITIAL_BLOCKS_AMOUNT) { if (this.currentBlockHeight === 0) {
this.currentBlockHeight = blockHeightTip; this.currentBlockHeight = blockHeightTip;
} else { } else {
this.currentBlockHeight++; this.currentBlockHeight++;
@ -571,7 +579,8 @@ class Blocks {
const block = BitcoinApi.convertBlock(verboseBlock); const block = BitcoinApi.convertBlock(verboseBlock);
const txIds: string[] = await bitcoinApi.$getTxIdsForBlock(blockHash); const txIds: string[] = await bitcoinApi.$getTxIdsForBlock(blockHash);
const transactions = await this.$getTransactionsExtended(blockHash, block.height, false); const transactions = await this.$getTransactionsExtended(blockHash, block.height, false);
const blockExtended: BlockExtended = await this.$getBlockExtended(block, transactions); const cpfpSummary: CpfpSummary = Common.calculateCpfp(block.height, transactions);
const blockExtended: BlockExtended = await this.$getBlockExtended(block, cpfpSummary.transactions);
const blockSummary: BlockSummary = this.summarizeBlock(verboseBlock); const blockSummary: BlockSummary = this.summarizeBlock(verboseBlock);
// start async callbacks // start async callbacks
@ -581,11 +590,10 @@ class Blocks {
if (!fastForwarded) { if (!fastForwarded) {
const lastBlock = await blocksRepository.$getBlockByHeight(blockExtended.height - 1); const lastBlock = await blocksRepository.$getBlockByHeight(blockExtended.height - 1);
if (lastBlock !== null && blockExtended.previousblockhash !== lastBlock.id) { if (lastBlock !== null && blockExtended.previousblockhash !== lastBlock.id) {
logger.warn(`Chain divergence detected at block ${lastBlock.height}, re-indexing most recent data`); logger.warn(`Chain divergence detected at block ${lastBlock.height}, re-indexing most recent data`, logger.tags.mining);
// We assume there won't be a reorg with more than 10 block depth // We assume there won't be a reorg with more than 10 block depth
await BlocksRepository.$deleteBlocksFrom(lastBlock.height - 10); await BlocksRepository.$deleteBlocksFrom(lastBlock.height - 10);
await HashratesRepository.$deleteLastEntries(); await HashratesRepository.$deleteLastEntries();
await BlocksSummariesRepository.$deleteBlocksFrom(lastBlock.height - 10);
await cpfpRepository.$deleteClustersFrom(lastBlock.height - 10); await cpfpRepository.$deleteClustersFrom(lastBlock.height - 10);
for (let i = 10; i >= 0; --i) { for (let i = 10; i >= 0; --i) {
const newBlock = await this.$indexBlock(lastBlock.height - i); const newBlock = await this.$indexBlock(lastBlock.height - i);
@ -596,7 +604,7 @@ class Blocks {
} }
await mining.$indexDifficultyAdjustments(); await mining.$indexDifficultyAdjustments();
await DifficultyAdjustmentsRepository.$deleteLastAdjustment(); await DifficultyAdjustmentsRepository.$deleteLastAdjustment();
logger.info(`Re-indexed 10 blocks and summaries. Also re-indexed the last difficulty adjustments. Will re-index latest hashrates in a few seconds.`); logger.info(`Re-indexed 10 blocks and summaries. Also re-indexed the last difficulty adjustments. Will re-index latest hashrates in a few seconds.`, logger.tags.mining);
indexer.reindex(); indexer.reindex();
} }
await blocksRepository.$saveBlockInDatabase(blockExtended); await blocksRepository.$saveBlockInDatabase(blockExtended);
@ -608,7 +616,7 @@ class Blocks {
priceId: lastestPriceId, priceId: lastestPriceId,
}]); }]);
} else { } else {
logger.info(`Cannot save block price for ${blockExtended.height} because the price updater hasnt completed yet. Trying again in 10 seconds.`, logger.tags.mining); logger.debug(`Cannot save block price for ${blockExtended.height} because the price updater hasnt completed yet. Trying again in 10 seconds.`, logger.tags.mining);
setTimeout(() => { setTimeout(() => {
indexer.runSingleTask('blocksPrices'); indexer.runSingleTask('blocksPrices');
}, 10000); }, 10000);
@ -619,7 +627,7 @@ class Blocks {
await this.$getStrippedBlockTransactions(blockExtended.id, true); await this.$getStrippedBlockTransactions(blockExtended.id, true);
} }
if (config.MEMPOOL.CPFP_INDEXING) { if (config.MEMPOOL.CPFP_INDEXING) {
this.$indexCPFP(blockExtended.id, this.currentBlockHeight); this.$saveCpfp(blockExtended.id, this.currentBlockHeight, cpfpSummary);
} }
} }
} }
@ -728,7 +736,7 @@ class Blocks {
// Index the response if needed // Index the response if needed
if (Common.blocksSummariesIndexingEnabled() === true) { if (Common.blocksSummariesIndexingEnabled() === true) {
await BlocksSummariesRepository.$saveSummary({height: block.height, mined: summary}); await BlocksSummariesRepository.$saveTransactions(block.height, block.hash, summary.transactions);
} }
return summary.transactions; return summary.transactions;
@ -844,7 +852,7 @@ class Blocks {
if (cleanBlock.fee_amt_percentiles === null) { if (cleanBlock.fee_amt_percentiles === null) {
const block = await bitcoinClient.getBlock(cleanBlock.hash, 2); const block = await bitcoinClient.getBlock(cleanBlock.hash, 2);
const summary = this.summarizeBlock(block); const summary = this.summarizeBlock(block);
await BlocksSummariesRepository.$saveSummary({ height: block.height, mined: summary }); await BlocksSummariesRepository.$saveTransactions(cleanBlock.height, cleanBlock.hash, summary.transactions);
cleanBlock.fee_amt_percentiles = await BlocksSummariesRepository.$getFeePercentilesByBlockId(cleanBlock.hash); cleanBlock.fee_amt_percentiles = await BlocksSummariesRepository.$getFeePercentilesByBlockId(cleanBlock.hash);
} }
if (cleanBlock.fee_amt_percentiles !== null) { if (cleanBlock.fee_amt_percentiles !== null) {
@ -913,42 +921,20 @@ class Blocks {
public async $indexCPFP(hash: string, height: number): Promise<void> { public async $indexCPFP(hash: string, height: number): Promise<void> {
const block = await bitcoinClient.getBlock(hash, 2); const block = await bitcoinClient.getBlock(hash, 2);
const transactions = block.tx.map(tx => { const transactions = block.tx.map(tx => {
tx.vsize = tx.weight / 4;
tx.fee *= 100_000_000; tx.fee *= 100_000_000;
return tx; return tx;
}); });
const clusters: any[] = []; const summary = Common.calculateCpfp(height, transactions);
let cluster: TransactionStripped[] = []; await this.$saveCpfp(hash, height, summary);
let ancestors: { [txid: string]: boolean } = {};
for (let i = transactions.length - 1; i >= 0; i--) { const effectiveFeeStats = Common.calcEffectiveFeeStatistics(summary.transactions);
const tx = transactions[i]; await blocksRepository.$saveEffectiveFeeStats(hash, effectiveFeeStats);
if (!ancestors[tx.txid]) {
let totalFee = 0;
let totalVSize = 0;
cluster.forEach(tx => {
totalFee += tx?.fee || 0;
totalVSize += tx.vsize;
});
const effectiveFeePerVsize = totalFee / totalVSize;
if (cluster.length > 1) {
clusters.push({
root: cluster[0].txid,
height,
txs: cluster.map(tx => { return { txid: tx.txid, weight: tx.vsize * 4, fee: tx.fee || 0 }; }),
effectiveFeePerVsize,
});
} }
cluster = [];
ancestors = {}; public async $saveCpfp(hash: string, height: number, cpfpSummary: CpfpSummary): Promise<void> {
} const result = await cpfpRepository.$batchSaveClusters(cpfpSummary.clusters);
cluster.push(tx);
tx.vin.forEach(vin => {
ancestors[vin.txid] = true;
});
}
const result = await cpfpRepository.$batchSaveClusters(clusters);
if (!result) { if (!result) {
await cpfpRepository.$insertProgressMarker(height); await cpfpRepository.$insertProgressMarker(height);
} }

View File

@ -1,4 +1,4 @@
import { CpfpInfo, MempoolBlockWithTransactions, TransactionExtended, TransactionStripped } from '../mempool.interfaces'; import { Ancestor, CpfpInfo, CpfpSummary, EffectiveFeeStats, MempoolBlockWithTransactions, TransactionExtended, TransactionStripped } from '../mempool.interfaces';
import config from '../config'; import config from '../config';
import { NodeSocket } from '../repositories/NodesSocketsRepository'; import { NodeSocket } from '../repositories/NodesSocketsRepository';
import { isIP } from 'net'; import { isIP } from 'net';
@ -345,4 +345,99 @@ export class Common {
}; };
} }
} }
static calculateCpfp(height: number, transactions: TransactionExtended[]): CpfpSummary {
const clusters: { root: string, height: number, txs: Ancestor[], effectiveFeePerVsize: number }[] = [];
let cluster: TransactionExtended[] = [];
let ancestors: { [txid: string]: boolean } = {};
const txMap = {};
for (let i = transactions.length - 1; i >= 0; i--) {
const tx = transactions[i];
txMap[tx.txid] = tx;
if (!ancestors[tx.txid]) {
let totalFee = 0;
let totalVSize = 0;
cluster.forEach(tx => {
totalFee += tx?.fee || 0;
totalVSize += (tx.weight / 4);
});
const effectiveFeePerVsize = totalFee / totalVSize;
if (cluster.length > 1) {
clusters.push({
root: cluster[0].txid,
height,
txs: cluster.map(tx => { return { txid: tx.txid, weight: tx.weight, fee: tx.fee || 0 }; }),
effectiveFeePerVsize,
});
}
cluster.forEach(tx => {
txMap[tx.txid].effectiveFeePerVsize = effectiveFeePerVsize;
});
cluster = [];
ancestors = {};
}
cluster.push(tx);
tx.vin.forEach(vin => {
ancestors[vin.txid] = true;
});
}
return {
transactions,
clusters,
};
}
static calcEffectiveFeeStatistics(transactions: { weight: number, fee: number, effectiveFeePerVsize?: number, txid: string }[]): EffectiveFeeStats {
const sortedTxs = transactions.map(tx => { return { txid: tx.txid, weight: tx.weight, rate: tx.effectiveFeePerVsize || ((tx.fee || 0) / (tx.weight / 4)) }; }).sort((a, b) => a.rate - b.rate);
let weightCount = 0;
let medianFee = 0;
let medianWeight = 0;
// calculate the "medianFee" as the average fee rate of the middle 10000 weight units of transactions
const leftBound = 1995000;
const rightBound = 2005000;
for (let i = 0; i < sortedTxs.length && weightCount < rightBound; i++) {
const left = weightCount;
const right = weightCount + sortedTxs[i].weight;
if (right > leftBound) {
const weight = Math.min(right, rightBound) - Math.max(left, leftBound);
medianFee += (sortedTxs[i].rate * (weight / 4) );
medianWeight += weight;
}
weightCount += sortedTxs[i].weight;
}
const medianFeeRate = medianWeight ? (medianFee / (medianWeight / 4)) : 0;
// minimum effective fee heuristic:
// lowest of
// a) the 1st percentile of effective fee rates
// b) the minimum effective fee rate in the last 2% of transactions (in block order)
const minFee = Math.min(
Common.getNthPercentile(1, sortedTxs).rate,
transactions.slice(-transactions.length / 50).reduce((min, tx) => { return Math.min(min, tx.effectiveFeePerVsize || ((tx.fee || 0) / (tx.weight / 4))); }, Infinity)
);
// maximum effective fee heuristic:
// highest of
// a) the 99th percentile of effective fee rates
// b) the maximum effective fee rate in the first 2% of transactions (in block order)
const maxFee = Math.max(
Common.getNthPercentile(99, sortedTxs).rate,
transactions.slice(0, transactions.length / 50).reduce((max, tx) => { return Math.max(max, tx.effectiveFeePerVsize || ((tx.fee || 0) / (tx.weight / 4))); }, 0)
);
return {
medianFee: medianFeeRate,
feeRange: [
minFee,
[10,25,50,75,90].map(n => Common.getNthPercentile(n, sortedTxs).rate),
maxFee,
].flat(),
};
}
static getNthPercentile(n: number, sortedDistribution: any[]): any {
return sortedDistribution[Math.floor((sortedDistribution.length - 1) * (n / 100))];
}
} }

View File

@ -497,6 +497,7 @@ class DatabaseMigration {
this.uniqueLog(logger.notice, this.blocksTruncatedMessage); this.uniqueLog(logger.notice, this.blocksTruncatedMessage);
await this.$executeQuery('DELETE FROM `pools`'); await this.$executeQuery('DELETE FROM `pools`');
await this.$executeQuery('ALTER TABLE pools AUTO_INCREMENT = 1'); await this.$executeQuery('ALTER TABLE pools AUTO_INCREMENT = 1');
await this.$executeQuery(`UPDATE state SET string = NULL WHERE name = 'pools_json_sha'`);
this.uniqueLog(logger.notice, '`pools` table has been truncated`'); this.uniqueLog(logger.notice, '`pools` table has been truncated`');
await this.updateToSchemaVersion(56); await this.updateToSchemaVersion(56);
} }

View File

@ -24,12 +24,11 @@ export function calcDifficultyAdjustment(
network: string, network: string,
latestBlockTimestamp: number, latestBlockTimestamp: number,
): DifficultyAdjustment { ): DifficultyAdjustment {
const ESTIMATE_LAG_BLOCKS = 146; // For first 7.2% of epoch, don't estimate.
const EPOCH_BLOCK_LENGTH = 2016; // Bitcoin mainnet const EPOCH_BLOCK_LENGTH = 2016; // Bitcoin mainnet
const BLOCK_SECONDS_TARGET = 600; // Bitcoin mainnet const BLOCK_SECONDS_TARGET = 600; // Bitcoin mainnet
const TESTNET_MAX_BLOCK_SECONDS = 1200; // Bitcoin testnet const TESTNET_MAX_BLOCK_SECONDS = 1200; // Bitcoin testnet
const diffSeconds = nowSeconds - DATime; const diffSeconds = Math.max(0, nowSeconds - DATime);
const blocksInEpoch = (blockHeight >= 0) ? blockHeight % EPOCH_BLOCK_LENGTH : 0; const blocksInEpoch = (blockHeight >= 0) ? blockHeight % EPOCH_BLOCK_LENGTH : 0;
const progressPercent = (blockHeight >= 0) ? blocksInEpoch / EPOCH_BLOCK_LENGTH * 100 : 100; const progressPercent = (blockHeight >= 0) ? blocksInEpoch / EPOCH_BLOCK_LENGTH * 100 : 100;
const remainingBlocks = EPOCH_BLOCK_LENGTH - blocksInEpoch; const remainingBlocks = EPOCH_BLOCK_LENGTH - blocksInEpoch;
@ -37,9 +36,8 @@ export function calcDifficultyAdjustment(
const expectedBlocks = diffSeconds / BLOCK_SECONDS_TARGET; const expectedBlocks = diffSeconds / BLOCK_SECONDS_TARGET;
let difficultyChange = 0; let difficultyChange = 0;
let timeAvgSecs = diffSeconds / blocksInEpoch; let timeAvgSecs = blocksInEpoch ? diffSeconds / blocksInEpoch : BLOCK_SECONDS_TARGET;
// Only calculate the estimate once we have 7.2% of blocks in current epoch
if (blocksInEpoch >= ESTIMATE_LAG_BLOCKS) {
difficultyChange = (BLOCK_SECONDS_TARGET / timeAvgSecs - 1) * 100; difficultyChange = (BLOCK_SECONDS_TARGET / timeAvgSecs - 1) * 100;
// Max increase is x4 (+300%) // Max increase is x4 (+300%)
if (difficultyChange > 300) { if (difficultyChange > 300) {
@ -49,7 +47,6 @@ export function calcDifficultyAdjustment(
if (difficultyChange < -75) { if (difficultyChange < -75) {
difficultyChange = -75; difficultyChange = -75;
} }
}
// Testnet difficulty is set to 1 after 20 minutes of no blocks, // Testnet difficulty is set to 1 after 20 minutes of no blocks,
// therefore the time between blocks will always be below 20 minutes (1200s). // therefore the time between blocks will always be below 20 minutes (1200s).

View File

@ -43,8 +43,10 @@ class DiskCache {
const mempool = memPool.getMempool(); const mempool = memPool.getMempool();
const mempoolArray: TransactionExtended[] = []; const mempoolArray: TransactionExtended[] = [];
for (const tx in mempool) { for (const tx in mempool) {
if (mempool[tx] && !mempool[tx].deleteAfter) {
mempoolArray.push(mempool[tx]); mempoolArray.push(mempool[tx]);
} }
}
Common.shuffleArray(mempoolArray); Common.shuffleArray(mempoolArray);
@ -162,7 +164,7 @@ class DiskCache {
} }
} }
} catch (e) { } catch (e) {
logger.info('Error parsing ' + fileName + '. Skipping. Reason: ' + (e instanceof Error ? e.message : e)); logger.err('Error parsing ' + fileName + '. Skipping. Reason: ' + (e instanceof Error ? e.message : e));
} }
} }

View File

@ -4,21 +4,29 @@ import * as fs from 'fs';
import { AbstractLightningApi } from '../lightning-api-abstract-factory'; import { AbstractLightningApi } from '../lightning-api-abstract-factory';
import { ILightningApi } from '../lightning-api.interface'; import { ILightningApi } from '../lightning-api.interface';
import config from '../../../config'; import config from '../../../config';
import logger from '../../../logger';
class LndApi implements AbstractLightningApi { class LndApi implements AbstractLightningApi {
axiosConfig: AxiosRequestConfig = {}; axiosConfig: AxiosRequestConfig = {};
constructor() { constructor() {
if (config.LIGHTNING.ENABLED) { if (!config.LIGHTNING.ENABLED) {
return;
}
try {
this.axiosConfig = { this.axiosConfig = {
headers: { headers: {
'Grpc-Metadata-macaroon': fs.readFileSync(config.LND.MACAROON_PATH).toString('hex') 'Grpc-Metadata-macaroon': fs.readFileSync(config.LND.MACAROON_PATH).toString('hex'),
}, },
httpsAgent: new Agent({ httpsAgent: new Agent({
ca: fs.readFileSync(config.LND.TLS_CERT_PATH) ca: fs.readFileSync(config.LND.TLS_CERT_PATH)
}), }),
timeout: config.LND.TIMEOUT timeout: config.LND.TIMEOUT
}; };
} catch (e) {
config.LIGHTNING.ENABLED = false;
logger.updateNetwork();
logger.err(`Could not initialize LND Macaroon/TLS Cert. Disabling LIGHTNING. ` + (e instanceof Error ? e.message : e));
} }
} }

View File

@ -59,7 +59,7 @@ class MempoolBlocks {
// Loop through and traverse all ancestors and sum up all the sizes + fees // Loop through and traverse all ancestors and sum up all the sizes + fees
// Pass down size + fee to all unconfirmed children // Pass down size + fee to all unconfirmed children
let sizes = 0; let sizes = 0;
memPoolArray.forEach((tx, i) => { memPoolArray.forEach((tx) => {
sizes += tx.weight; sizes += tx.weight;
if (sizes > 4000000 * 8) { if (sizes > 4000000 * 8) {
return; return;
@ -74,7 +74,7 @@ class MempoolBlocks {
const time = end - start; const time = end - start;
logger.debug('Mempool blocks calculated in ' + time / 1000 + ' seconds'); logger.debug('Mempool blocks calculated in ' + time / 1000 + ' seconds');
const blocks = this.calculateMempoolBlocks(memPoolArray, this.mempoolBlocks); const blocks = this.calculateMempoolBlocks(memPoolArray);
if (saveResults) { if (saveResults) {
const deltas = this.calculateMempoolDeltas(this.mempoolBlocks, blocks); const deltas = this.calculateMempoolDeltas(this.mempoolBlocks, blocks);
@ -85,26 +85,23 @@ class MempoolBlocks {
return blocks; return blocks;
} }
private calculateMempoolBlocks(transactionsSorted: TransactionExtended[], prevBlocks: MempoolBlockWithTransactions[]): MempoolBlockWithTransactions[] { private calculateMempoolBlocks(transactionsSorted: TransactionExtended[]): MempoolBlockWithTransactions[] {
const mempoolBlocks: MempoolBlockWithTransactions[] = []; const mempoolBlocks: MempoolBlockWithTransactions[] = [];
let blockWeight = 0; let blockWeight = 0;
let blockSize = 0;
let transactions: TransactionExtended[] = []; let transactions: TransactionExtended[] = [];
transactionsSorted.forEach((tx) => { transactionsSorted.forEach((tx) => {
if (blockWeight + tx.weight <= config.MEMPOOL.BLOCK_WEIGHT_UNITS if (blockWeight + tx.weight <= config.MEMPOOL.BLOCK_WEIGHT_UNITS
|| mempoolBlocks.length === config.MEMPOOL.MEMPOOL_BLOCKS_AMOUNT - 1) { || mempoolBlocks.length === config.MEMPOOL.MEMPOOL_BLOCKS_AMOUNT - 1) {
blockWeight += tx.weight; blockWeight += tx.weight;
blockSize += tx.size;
transactions.push(tx); transactions.push(tx);
} else { } else {
mempoolBlocks.push(this.dataToMempoolBlocks(transactions, mempoolBlocks.length)); mempoolBlocks.push(this.dataToMempoolBlocks(transactions));
blockWeight = tx.weight; blockWeight = tx.weight;
blockSize = tx.size;
transactions = [tx]; transactions = [tx];
} }
}); });
if (transactions.length) { if (transactions.length) {
mempoolBlocks.push(this.dataToMempoolBlocks(transactions, mempoolBlocks.length)); mempoolBlocks.push(this.dataToMempoolBlocks(transactions));
} }
return mempoolBlocks; return mempoolBlocks;
@ -151,7 +148,7 @@ class MempoolBlocks {
// prepare a stripped down version of the mempool with only the minimum necessary data // prepare a stripped down version of the mempool with only the minimum necessary data
// to reduce the overhead of passing this data to the worker thread // to reduce the overhead of passing this data to the worker thread
const strippedMempool: { [txid: string]: ThreadTransaction } = {}; const strippedMempool: { [txid: string]: ThreadTransaction } = {};
Object.values(newMempool).forEach(entry => { Object.values(newMempool).filter(tx => !tx.deleteAfter).forEach(entry => {
strippedMempool[entry.txid] = { strippedMempool[entry.txid] = {
txid: entry.txid, txid: entry.txid,
fee: entry.fee, fee: entry.fee,
@ -186,7 +183,14 @@ class MempoolBlocks {
this.txSelectionWorker?.once('error', reject); this.txSelectionWorker?.once('error', reject);
}); });
this.txSelectionWorker.postMessage({ type: 'set', mempool: strippedMempool }); this.txSelectionWorker.postMessage({ type: 'set', mempool: strippedMempool });
const { blocks, clusters } = await workerResultPromise; let { blocks, clusters } = await workerResultPromise;
// filter out stale transactions
const unfilteredCount = blocks.reduce((total, block) => { return total + block.length; }, 0);
blocks = blocks.map(block => block.filter(tx => (tx.txid && tx.txid in newMempool)));
const filteredCount = blocks.reduce((total, block) => { return total + block.length; }, 0);
if (filteredCount < unfilteredCount) {
logger.warn(`tx selection worker thread returned ${unfilteredCount - filteredCount} stale transactions from makeBlockTemplates`);
}
// clean up thread error listener // clean up thread error listener
this.txSelectionWorker?.removeListener('error', threadErrorListener); this.txSelectionWorker?.removeListener('error', threadErrorListener);
@ -228,7 +232,14 @@ class MempoolBlocks {
this.txSelectionWorker?.once('error', reject); this.txSelectionWorker?.once('error', reject);
}); });
this.txSelectionWorker.postMessage({ type: 'update', added: addedStripped, removed }); this.txSelectionWorker.postMessage({ type: 'update', added: addedStripped, removed });
const { blocks, clusters } = await workerResultPromise; let { blocks, clusters } = await workerResultPromise;
// filter out stale transactions
const unfilteredCount = blocks.reduce((total, block) => { return total + block.length; }, 0);
blocks = blocks.map(block => block.filter(tx => (tx.txid && tx.txid in newMempool)));
const filteredCount = blocks.reduce((total, block) => { return total + block.length; }, 0);
if (filteredCount < unfilteredCount) {
logger.warn(`tx selection worker thread returned ${unfilteredCount - filteredCount} stale transactions from updateBlockTemplates`);
}
// clean up thread error listener // clean up thread error listener
this.txSelectionWorker?.removeListener('error', threadErrorListener); this.txSelectionWorker?.removeListener('error', threadErrorListener);
@ -243,7 +254,7 @@ class MempoolBlocks {
// update this thread's mempool with the results // update this thread's mempool with the results
blocks.forEach(block => { blocks.forEach(block => {
block.forEach(tx => { block.forEach(tx => {
if (tx.txid in mempool) { if (tx.txid && tx.txid in mempool) {
if (tx.effectiveFeePerVsize != null) { if (tx.effectiveFeePerVsize != null) {
mempool[tx.txid].effectiveFeePerVsize = tx.effectiveFeePerVsize; mempool[tx.txid].effectiveFeePerVsize = tx.effectiveFeePerVsize;
} }
@ -253,6 +264,10 @@ class MempoolBlocks {
const cluster = clusters[tx.cpfpRoot]; const cluster = clusters[tx.cpfpRoot];
let matched = false; let matched = false;
cluster.forEach(txid => { cluster.forEach(txid => {
if (!txid || !mempool[txid]) {
logger.warn('projected transaction ancestor missing from mempool cache');
return;
}
if (txid === tx.txid) { if (txid === tx.txid) {
matched = true; matched = true;
} else { } else {
@ -273,15 +288,17 @@ class MempoolBlocks {
mempool[tx.txid].bestDescendant = null; mempool[tx.txid].bestDescendant = null;
} }
mempool[tx.txid].cpfpChecked = tx.cpfpChecked; mempool[tx.txid].cpfpChecked = tx.cpfpChecked;
} else {
logger.warn('projected transaction missing from mempool cache');
} }
}); });
}); });
// unpack the condensed blocks into proper mempool blocks // unpack the condensed blocks into proper mempool blocks
const mempoolBlocks = blocks.map((transactions, blockIndex) => { const mempoolBlocks = blocks.map((transactions) => {
return this.dataToMempoolBlocks(transactions.map(tx => { return this.dataToMempoolBlocks(transactions.map(tx => {
return mempool[tx.txid] || null; return mempool[tx.txid] || null;
}).filter(tx => !!tx), blockIndex); }).filter(tx => !!tx));
}); });
if (saveResults) { if (saveResults) {
@ -293,7 +310,7 @@ class MempoolBlocks {
return mempoolBlocks; return mempoolBlocks;
} }
private dataToMempoolBlocks(transactions: TransactionExtended[], blocksIndex: number): MempoolBlockWithTransactions { private dataToMempoolBlocks(transactions: TransactionExtended[]): MempoolBlockWithTransactions {
let totalSize = 0; let totalSize = 0;
let totalWeight = 0; let totalWeight = 0;
const fitTransactions: TransactionExtended[] = []; const fitTransactions: TransactionExtended[] = [];
@ -304,22 +321,14 @@ class MempoolBlocks {
fitTransactions.push(tx); fitTransactions.push(tx);
} }
}); });
let rangeLength = 4; const feeStats = Common.calcEffectiveFeeStatistics(transactions);
if (blocksIndex === 0) {
rangeLength = 8;
}
if (transactions.length > 4000) {
rangeLength = 6;
} else if (transactions.length > 10000) {
rangeLength = 8;
}
return { return {
blockSize: totalSize, blockSize: totalSize,
blockVSize: totalWeight / 4, blockVSize: totalWeight / 4,
nTx: transactions.length, nTx: transactions.length,
totalFees: transactions.reduce((acc, cur) => acc + cur.fee, 0), totalFees: transactions.reduce((acc, cur) => acc + cur.fee, 0),
medianFee: Common.percentile(transactions.map((tx) => tx.effectiveFeePerVsize), config.MEMPOOL.RECOMMENDED_FEE_PERCENTILE), medianFee: feeStats.medianFee, // Common.percentile(transactions.map((tx) => tx.effectiveFeePerVsize), config.MEMPOOL.RECOMMENDED_FEE_PERCENTILE),
feeRange: Common.getFeesInRange(transactions, rangeLength), feeRange: feeStats.feeRange, //Common.getFeesInRange(transactions, rangeLength),
transactionIds: transactions.map((tx) => tx.txid), transactionIds: transactions.map((tx) => tx.txid),
transactions: fitTransactions.map((tx) => Common.stripTransaction(tx)), transactions: fitTransactions.map((tx) => Common.stripTransaction(tx)),
}; };

View File

@ -38,7 +38,6 @@ class Mempool {
constructor() { constructor() {
setInterval(this.updateTxPerSecond.bind(this), 1000); setInterval(this.updateTxPerSecond.bind(this), 1000);
setInterval(this.deleteExpiredTransactions.bind(this), 20000);
} }
/** /**
@ -256,7 +255,7 @@ class Mempool {
} }
} }
private deleteExpiredTransactions() { public deleteExpiredTransactions() {
const now = new Date().getTime(); const now = new Date().getTime();
for (const tx in this.mempoolCache) { for (const tx in this.mempoolCache) {
const lazyDeleteAt = this.mempoolCache[tx].deleteAfter; const lazyDeleteAt = this.mempoolCache[tx].deleteAfter;

View File

@ -452,7 +452,7 @@ class Mining {
const elapsedSeconds = Math.max(1, Math.round((new Date().getTime() / 1000) - timer)); const elapsedSeconds = Math.max(1, Math.round((new Date().getTime() / 1000) - timer));
if (elapsedSeconds > 5) { if (elapsedSeconds > 5) {
const progress = Math.round(totalBlockChecked / blocks.length * 100); const progress = Math.round(totalBlockChecked / blocks.length * 100);
logger.info(`Indexing difficulty adjustment at block #${block.height} | Progress: ${progress}%`, logger.tags.mining); logger.debug(`Indexing difficulty adjustment at block #${block.height} | Progress: ${progress}%`, logger.tags.mining);
timer = new Date().getTime() / 1000; timer = new Date().getTime() / 1000;
} }
} }
@ -558,8 +558,10 @@ class Mining {
currentBlockHeight -= 10000; currentBlockHeight -= 10000;
} }
if (totalIndexed) { if (totalIndexed > 0) {
logger.info(`Indexing missing coinstatsindex data completed`, logger.tags.mining); logger.info(`Indexing missing coinstatsindex data completed. Indexed ${totalIndexed}`, logger.tags.mining);
} else {
logger.debug(`Indexing missing coinstatsindex data completed. Indexed 0.`, logger.tags.mining);
} }
} }

View File

@ -211,6 +211,7 @@ class WebsocketHandler {
if (!_blocks) { if (!_blocks) {
_blocks = blocks.getBlocks().slice(-config.MEMPOOL.INITIAL_BLOCKS_AMOUNT); _blocks = blocks.getBlocks().slice(-config.MEMPOOL.INITIAL_BLOCKS_AMOUNT);
} }
const da = difficultyAdjustment.getDifficultyAdjustment();
return { return {
'mempoolInfo': memPool.getMempoolInfo(), 'mempoolInfo': memPool.getMempoolInfo(),
'vBytesPerSecond': memPool.getVBytesPerSecond(), 'vBytesPerSecond': memPool.getVBytesPerSecond(),
@ -220,7 +221,7 @@ class WebsocketHandler {
'transactions': memPool.getLatestTransactions(), 'transactions': memPool.getLatestTransactions(),
'backendInfo': backendInfo.getBackendInfo(), 'backendInfo': backendInfo.getBackendInfo(),
'loadingIndicators': loadingIndicators.getLoadingIndicators(), 'loadingIndicators': loadingIndicators.getLoadingIndicators(),
'da': difficultyAdjustment.getDifficultyAdjustment(), 'da': da?.previousTime ? da : undefined,
'fees': feeApi.getRecommendedFee(), 'fees': feeApi.getRecommendedFee(),
...this.extraInitProperties ...this.extraInitProperties
}; };
@ -278,7 +279,9 @@ class WebsocketHandler {
response['mempoolInfo'] = mempoolInfo; response['mempoolInfo'] = mempoolInfo;
response['vBytesPerSecond'] = vBytesPerSecond; response['vBytesPerSecond'] = vBytesPerSecond;
response['transactions'] = newTransactions.slice(0, 6).map((tx) => Common.stripTransaction(tx)); response['transactions'] = newTransactions.slice(0, 6).map((tx) => Common.stripTransaction(tx));
if (da?.previousTime) {
response['da'] = da; response['da'] = da;
}
response['fees'] = recommendedFees; response['fees'] = recommendedFees;
} }
@ -505,7 +508,7 @@ class WebsocketHandler {
const response = { const response = {
'block': block, 'block': block,
'mempoolInfo': memPool.getMempoolInfo(), 'mempoolInfo': memPool.getMempoolInfo(),
'da': da, 'da': da?.previousTime ? da : undefined,
'fees': fees, 'fees': fees,
}; };

View File

@ -178,6 +178,7 @@ class Server {
logger.debug(msg); logger.debug(msg);
} }
} }
memPool.deleteExpiredTransactions();
await blocks.$updateBlocks(); await blocks.$updateBlocks();
await memPool.$updateMempool(); await memPool.$updateMempool();
indexer.$run(); indexer.$run();
@ -275,7 +276,7 @@ class Server {
if (!this.warnedHeapCritical && this.maxHeapSize > warnThreshold) { if (!this.warnedHeapCritical && this.maxHeapSize > warnThreshold) {
this.warnedHeapCritical = true; this.warnedHeapCritical = true;
logger.warn(`Used ${(this.maxHeapSize / stats.heap_size_limit).toFixed(2)}% of heap limit (${formatBytes(this.maxHeapSize, byteUnits, true)} / ${formatBytes(stats.heap_size_limit, byteUnits)})!`); logger.warn(`Used ${(this.maxHeapSize / stats.heap_size_limit * 100).toFixed(2)}% of heap limit (${formatBytes(this.maxHeapSize, byteUnits, true)} / ${formatBytes(stats.heap_size_limit, byteUnits)})!`);
} }
if (this.lastHeapLogTime === null || (now - this.lastHeapLogTime) > (this.heapLogInterval * 1000)) { if (this.lastHeapLogTime === null || (now - this.lastHeapLogTime) > (this.heapLogInterval * 1000)) {
logger.debug(`Memory usage: ${formatBytes(this.maxHeapSize, byteUnits)} / ${formatBytes(stats.heap_size_limit, byteUnits)}`); logger.debug(`Memory usage: ${formatBytes(this.maxHeapSize, byteUnits)} / ${formatBytes(stats.heap_size_limit, byteUnits)}`);

View File

@ -69,6 +69,10 @@ class Logger {
this.network = this.getNetwork(); this.network = this.getNetwork();
} }
public updateNetwork(): void {
this.network = this.getNetwork();
}
private addprio(prio): void { private addprio(prio): void {
this[prio] = (function(_this) { this[prio] = (function(_this) {
return function(msg, tag?: string) { return function(msg, tag?: string) {

View File

@ -214,6 +214,16 @@ export interface MempoolStats {
tx_count: number; tx_count: number;
} }
export interface EffectiveFeeStats {
medianFee: number; // median effective fee rate
feeRange: number[]; // 2nd, 10th, 25th, 50th, 75th, 90th, 98th percentiles
}
export interface CpfpSummary {
transactions: TransactionExtended[];
clusters: { root: string, height: number, txs: Ancestor[], effectiveFeePerVsize: number }[];
}
export interface Statistic { export interface Statistic {
id?: number; id?: number;
added: string; added: string;
@ -309,9 +319,11 @@ export interface IDifficultyAdjustment {
remainingBlocks: number; remainingBlocks: number;
remainingTime: number; remainingTime: number;
previousRetarget: number; previousRetarget: number;
previousTime: number;
nextRetargetHeight: number; nextRetargetHeight: number;
timeAvg: number; timeAvg: number;
timeOffset: number; timeOffset: number;
expectedBlocks: number;
} }
export interface IndexedDifficultyAdjustment { export interface IndexedDifficultyAdjustment {

View File

@ -1,4 +1,4 @@
import { BlockExtended, BlockExtension, BlockPrice } from '../mempool.interfaces'; import { BlockExtended, BlockExtension, BlockPrice, EffectiveFeeStats } from '../mempool.interfaces';
import DB from '../database'; import DB from '../database';
import logger from '../logger'; import logger from '../logger';
import { Common } from '../api/common'; import { Common } from '../api/common';
@ -466,30 +466,6 @@ class BlocksRepository {
} }
} }
/**
* Get one block by hash
*/
public async $getBlockByHash(hash: string): Promise<object | null> {
try {
const query = `
SELECT ${BLOCK_DB_FIELDS}
FROM blocks
JOIN pools ON blocks.pool_id = pools.id
WHERE hash = ?;
`;
const [rows]: any[] = await DB.query(query, [hash]);
if (rows.length <= 0) {
return null;
}
return await this.formatDbBlockIntoExtendedBlock(rows[0]);
} catch (e) {
logger.err(`Cannot get indexed block ${hash}. Reason: ` + (e instanceof Error ? e.message : e));
throw e;
}
}
/** /**
* Return blocks difficulty * Return blocks difficulty
*/ */
@ -599,7 +575,6 @@ class BlocksRepository {
if (blocks[idx].previous_block_hash !== blocks[idx - 1].hash) { if (blocks[idx].previous_block_hash !== blocks[idx - 1].hash) {
logger.warn(`Chain divergence detected at block ${blocks[idx - 1].height}`); logger.warn(`Chain divergence detected at block ${blocks[idx - 1].height}`);
await this.$deleteBlocksFrom(blocks[idx - 1].height); await this.$deleteBlocksFrom(blocks[idx - 1].height);
await BlocksSummariesRepository.$deleteBlocksFrom(blocks[idx - 1].height);
await HashratesRepository.$deleteHashratesFromTimestamp(blocks[idx - 1].timestamp - 604800); await HashratesRepository.$deleteHashratesFromTimestamp(blocks[idx - 1].timestamp - 604800);
await DifficultyAdjustmentsRepository.$deleteAdjustementsFromHeight(blocks[idx - 1].height); await DifficultyAdjustmentsRepository.$deleteAdjustementsFromHeight(blocks[idx - 1].height);
return false; return false;
@ -619,7 +594,7 @@ class BlocksRepository {
* Delete blocks from the database from blockHeight * Delete blocks from the database from blockHeight
*/ */
public async $deleteBlocksFrom(blockHeight: number) { public async $deleteBlocksFrom(blockHeight: number) {
logger.info(`Delete newer blocks from height ${blockHeight} from the database`); logger.info(`Delete newer blocks from height ${blockHeight} from the database`, logger.tags.mining);
try { try {
await DB.query(`DELETE FROM blocks where height >= ${blockHeight}`); await DB.query(`DELETE FROM blocks where height >= ${blockHeight}`);
@ -908,6 +883,25 @@ class BlocksRepository {
} }
} }
/**
* Save indexed effective fee statistics
*
* @param id
* @param feeStats
*/
public async $saveEffectiveFeeStats(id: string, feeStats: EffectiveFeeStats): Promise<void> {
try {
await DB.query(`
UPDATE blocks SET median_fee = ?, fee_span = ?
WHERE hash = ?`,
[feeStats.medianFee, JSON.stringify(feeStats.feeRange), id]
);
} catch (e) {
logger.err(`Cannot update block fee stats. Reason: ` + (e instanceof Error ? e.message : e));
throw e;
}
}
/** /**
* Convert a mysql row block into a BlockExtended. Note that you * Convert a mysql row block into a BlockExtended. Note that you
* must provide the correct field into dbBlk object param * must provide the correct field into dbBlk object param
@ -978,6 +972,7 @@ class BlocksRepository {
} }
// If we're missing block summary related field, check if we can populate them on the fly now // If we're missing block summary related field, check if we can populate them on the fly now
// This is for example triggered upon re-org
if (Common.blocksSummariesIndexingEnabled() && if (Common.blocksSummariesIndexingEnabled() &&
(extras.medianFeeAmt === null || extras.feePercentiles === null)) (extras.medianFeeAmt === null || extras.feePercentiles === null))
{ {
@ -985,7 +980,7 @@ class BlocksRepository {
if (extras.feePercentiles === null) { if (extras.feePercentiles === null) {
const block = await bitcoinClient.getBlock(dbBlk.id, 2); const block = await bitcoinClient.getBlock(dbBlk.id, 2);
const summary = blocks.summarizeBlock(block); const summary = blocks.summarizeBlock(block);
await BlocksSummariesRepository.$saveSummary({ height: block.height, mined: summary }); await BlocksSummariesRepository.$saveTransactions(dbBlk.height, dbBlk.hash, summary.transactions);
extras.feePercentiles = await BlocksSummariesRepository.$getFeePercentilesByBlockId(dbBlk.id); extras.feePercentiles = await BlocksSummariesRepository.$getFeePercentilesByBlockId(dbBlk.id);
} }
if (extras.feePercentiles !== null) { if (extras.feePercentiles !== null) {

View File

@ -1,6 +1,6 @@
import DB from '../database'; import DB from '../database';
import logger from '../logger'; import logger from '../logger';
import { BlockSummary } from '../mempool.interfaces'; import { BlockSummary, TransactionStripped } from '../mempool.interfaces';
class BlocksSummariesRepository { class BlocksSummariesRepository {
public async $getByBlockId(id: string): Promise<BlockSummary | undefined> { public async $getByBlockId(id: string): Promise<BlockSummary | undefined> {
@ -17,7 +17,7 @@ class BlocksSummariesRepository {
return undefined; return undefined;
} }
public async $saveSummary(params: { height: number, mined?: BlockSummary}) { public async $saveSummary(params: { height: number, mined?: BlockSummary}): Promise<void> {
const blockId = params.mined?.id; const blockId = params.mined?.id;
try { try {
const transactions = JSON.stringify(params.mined?.transactions || []); const transactions = JSON.stringify(params.mined?.transactions || []);
@ -37,6 +37,20 @@ class BlocksSummariesRepository {
} }
} }
public async $saveTransactions(blockHeight: number, blockId: string, transactions: TransactionStripped[]): Promise<void> {
try {
const transactionsStr = JSON.stringify(transactions);
await DB.query(`
INSERT INTO blocks_summaries
SET height = ?, transactions = ?, id = ?
ON DUPLICATE KEY UPDATE transactions = ?`,
[blockHeight, transactionsStr, blockId, transactionsStr]);
} catch (e: any) {
logger.debug(`Cannot save block summary transactions for ${blockId}. Reason: ${e instanceof Error ? e.message : e}`);
throw e;
}
}
public async $saveTemplate(params: { height: number, template: BlockSummary}) { public async $saveTemplate(params: { height: number, template: BlockSummary}) {
const blockId = params.template?.id; const blockId = params.template?.id;
try { try {
@ -68,19 +82,6 @@ class BlocksSummariesRepository {
return []; return [];
} }
/**
* Delete blocks from the database from blockHeight
*/
public async $deleteBlocksFrom(blockHeight: number) {
logger.info(`Delete newer blocks summary from height ${blockHeight} from the database`);
try {
await DB.query(`DELETE FROM blocks_summaries where height >= ${blockHeight}`);
} catch (e) {
logger.err('Cannot delete indexed blocks summaries. Reason: ' + (e instanceof Error ? e.message : e));
}
}
/** /**
* Get the fee percentiles if the block has already been indexed, [] otherwise * Get the fee percentiles if the block has already been indexed, [] otherwise
* *

View File

@ -48,7 +48,7 @@ class CpfpRepository {
} }
} }
public async $batchSaveClusters(clusters: { root: string, height: number, txs: any, effectiveFeePerVsize: number}[]): Promise<boolean> { public async $batchSaveClusters(clusters: { root: string, height: number, txs: Ancestor[], effectiveFeePerVsize: number }[]): Promise<boolean> {
try { try {
const clusterValues: any[] = []; const clusterValues: any[] = [];
const txs: any[] = []; const txs: any[] = [];

View File

@ -220,7 +220,7 @@ class HashratesRepository {
* Delete hashrates from the database from timestamp * Delete hashrates from the database from timestamp
*/ */
public async $deleteHashratesFromTimestamp(timestamp: number) { public async $deleteHashratesFromTimestamp(timestamp: number) {
logger.info(`Delete newer hashrates from timestamp ${new Date(timestamp * 1000).toUTCString()} from the database`); logger.info(`Delete newer hashrates from timestamp ${new Date(timestamp * 1000).toUTCString()} from the database`, logger.tags.mining);
try { try {
await DB.query(`DELETE FROM hashrates WHERE hashrate_timestamp >= FROM_UNIXTIME(?)`, [timestamp]); await DB.query(`DELETE FROM hashrates WHERE hashrate_timestamp >= FROM_UNIXTIME(?)`, [timestamp]);

View File

@ -160,7 +160,7 @@ class PricesRepository {
// Compute fiat exchange rates // Compute fiat exchange rates
let latestPrice = rates[0] as ApiPrice; let latestPrice = rates[0] as ApiPrice;
if (latestPrice.USD === -1) { if (!latestPrice || latestPrice.USD === -1) {
latestPrice = priceUpdater.getEmptyPricesObj(); latestPrice = priceUpdater.getEmptyPricesObj();
} }

View File

@ -27,7 +27,7 @@ class ForensicsService {
private async $runTasks(): Promise<void> { private async $runTasks(): Promise<void> {
try { try {
logger.info(`Running forensics scans`); logger.debug(`Running forensics scans`);
if (config.MEMPOOL.BACKEND === 'esplora') { if (config.MEMPOOL.BACKEND === 'esplora') {
await this.$runClosedChannelsForensics(false); await this.$runClosedChannelsForensics(false);
@ -73,7 +73,7 @@ class ForensicsService {
let progress = 0; let progress = 0;
try { try {
logger.info(`Started running closed channel forensics...`); logger.debug(`Started running closed channel forensics...`);
let channels; let channels;
if (onlyNewChannels) { if (onlyNewChannels) {
channels = await channelsApi.$getClosedChannelsWithoutReason(); channels = await channelsApi.$getClosedChannelsWithoutReason();
@ -156,7 +156,7 @@ class ForensicsService {
this.loggerTimer = new Date().getTime() / 1000; this.loggerTimer = new Date().getTime() / 1000;
} }
} }
logger.info(`Closed channels forensics scan complete.`); logger.debug(`Closed channels forensics scan complete.`);
} catch (e) { } catch (e) {
logger.err('$runClosedChannelsForensics() error: ' + (e instanceof Error ? e.message : e)); logger.err('$runClosedChannelsForensics() error: ' + (e instanceof Error ? e.message : e));
} }
@ -217,7 +217,7 @@ class ForensicsService {
let progress = 0; let progress = 0;
try { try {
logger.info(`Started running open channel forensics...`); logger.debug(`Started running open channel forensics...`);
const channels = await channelsApi.$getChannelsWithoutSourceChecked(); const channels = await channelsApi.$getChannelsWithoutSourceChecked();
for (const openChannel of channels) { for (const openChannel of channels) {
@ -266,7 +266,7 @@ class ForensicsService {
} }
} }
logger.info(`Open channels forensics scan complete.`); logger.debug(`Open channels forensics scan complete.`);
} catch (e) { } catch (e) {
logger.err('$runOpenedChannelsForensics() error: ' + (e instanceof Error ? e.message : e)); logger.err('$runOpenedChannelsForensics() error: ' + (e instanceof Error ? e.message : e));
} finally { } finally {

View File

@ -283,7 +283,7 @@ class NetworkSyncService {
} else { } else {
log += ` for the first time`; log += ` for the first time`;
} }
logger.info(`${log}`, logger.tags.ln); logger.debug(`${log}`, logger.tags.ln);
const channels = await channelsApi.$getChannelsByStatus([0, 1]); const channels = await channelsApi.$getChannelsByStatus([0, 1]);
for (const channel of channels) { for (const channel of channels) {

View File

@ -15,6 +15,7 @@ class LightningStatsImporter {
topologiesFolder = config.LIGHTNING.TOPOLOGY_FOLDER; topologiesFolder = config.LIGHTNING.TOPOLOGY_FOLDER;
async $run(): Promise<void> { async $run(): Promise<void> {
try {
const [channels]: any[] = await DB.query('SELECT short_id from channels;'); const [channels]: any[] = await DB.query('SELECT short_id from channels;');
logger.info(`Caching funding txs for currently existing channels`, logger.tags.ln); logger.info(`Caching funding txs for currently existing channels`, logger.tags.ln);
await fundingTxFetcher.$fetchChannelsFundingTxs(channels.map(channel => channel.short_id)); await fundingTxFetcher.$fetchChannelsFundingTxs(channels.map(channel => channel.short_id));
@ -25,6 +26,9 @@ class LightningStatsImporter {
await this.$importHistoricalLightningStats(); await this.$importHistoricalLightningStats();
await this.$cleanupIncorrectSnapshot(); await this.$cleanupIncorrectSnapshot();
} catch (e) {
logger.err(`Exception in LightningStatsImporter::$run(). ${e}`);
}
} }
/** /**

View File

@ -62,7 +62,7 @@ class PoolsUpdater {
if (this.currentSha === null) { if (this.currentSha === null) {
logger.info(`Downloading pools-v2.json for the first time from ${this.poolsUrl} over ${network}`, logger.tags.mining); logger.info(`Downloading pools-v2.json for the first time from ${this.poolsUrl} over ${network}`, logger.tags.mining);
} else { } else {
logger.warn(`pools-v2.json is outdated, fetch latest from ${this.poolsUrl} over ${network}`, logger.tags.mining); logger.warn(`pools-v2.json is outdated, fetching latest from ${this.poolsUrl} over ${network}`, logger.tags.mining);
} }
const poolsJson = await this.query(this.poolsUrl); const poolsJson = await this.query(this.poolsUrl);
if (poolsJson === undefined) { if (poolsJson === undefined) {

View File

@ -222,7 +222,7 @@ class PriceUpdater {
private async $insertMissingRecentPrices(type: 'hour' | 'day'): Promise<void> { private async $insertMissingRecentPrices(type: 'hour' | 'day'): Promise<void> {
const existingPriceTimes = await PricesRepository.$getPricesTimes(); const existingPriceTimes = await PricesRepository.$getPricesTimes();
logger.info(`Fetching ${type === 'day' ? 'dai' : 'hour'}ly price history from exchanges and saving missing ones into the database`, logger.tags.mining); logger.debug(`Fetching ${type === 'day' ? 'dai' : 'hour'}ly price history from exchanges and saving missing ones into the database`, logger.tags.mining);
const historicalPrices: PriceHistory[] = []; const historicalPrices: PriceHistory[] = [];

View File

@ -5,6 +5,7 @@
"types": ["node", "jest"], "types": ["node", "jest"],
"lib": ["es2019", "dom"], "lib": ["es2019", "dom"],
"strict": true, "strict": true,
"skipLibCheck": true,
"noImplicitAny": false, "noImplicitAny": false,
"sourceMap": false, "sourceMap": false,
"outDir": "dist", "outDir": "dist",

View File

@ -10,6 +10,10 @@ cp /etc/nginx/nginx.conf /patch/nginx.conf
sed -i "s/__MEMPOOL_FRONTEND_HTTP_PORT__/${__MEMPOOL_FRONTEND_HTTP_PORT__}/g" /patch/nginx.conf sed -i "s/__MEMPOOL_FRONTEND_HTTP_PORT__/${__MEMPOOL_FRONTEND_HTTP_PORT__}/g" /patch/nginx.conf
cat /patch/nginx.conf > /etc/nginx/nginx.conf cat /patch/nginx.conf > /etc/nginx/nginx.conf
if [ "${LIGHTNING_DETECTED_PORT}" != "" ];then
export LIGHTNING=true
fi
# Runtime overrides - read env vars defined in docker compose # Runtime overrides - read env vars defined in docker compose
__TESTNET_ENABLED__=${TESTNET_ENABLED:=false} __TESTNET_ENABLED__=${TESTNET_ENABLED:=false}

View File

@ -106,6 +106,7 @@ https://www.transifex.com/mempool/mempool/dashboard/
* Arabic @baro0k * Arabic @baro0k
* Czech @pixelmade2 * Czech @pixelmade2
* Danish @pierrevendelboe
* German @Emzy * German @Emzy
* English (default) * English (default)
* Spanish @maxhodler @bisqes * Spanish @maxhodler @bisqes
@ -113,6 +114,7 @@ https://www.transifex.com/mempool/mempool/dashboard/
* French @Bayernatoor * French @Bayernatoor
* Korean @kcalvinalvinn @sogoagain * Korean @kcalvinalvinn @sogoagain
* Italian @HodlBits * Italian @HodlBits
* Lithuanian @eimze21
* Hebrew @rapidlab309 * Hebrew @rapidlab309
* Georgian @wyd_idk * Georgian @wyd_idk
* Hungarian @btcdragonlord * Hungarian @btcdragonlord

View File

@ -127,7 +127,7 @@ describe('Mainnet', () => {
cy.get('.search-box-container > .form-control').type('S').then(() => { cy.get('.search-box-container > .form-control').type('S').then(() => {
cy.wait('@search-1wizS'); cy.wait('@search-1wizS');
cy.get('app-search-results button.dropdown-item').should('have.length', 5); cy.get('app-search-results button.dropdown-item').should('have.length', 6);
}); });
cy.get('.search-box-container > .form-control').type('A').then(() => { cy.get('.search-box-container > .form-control').type('A').then(() => {

View File

@ -1,12 +1,12 @@
{ {
"name": "mempool-frontend", "name": "mempool-frontend",
"version": "2.5.0-dev", "version": "2.6.0-dev",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "mempool-frontend", "name": "mempool-frontend",
"version": "2.5.0-dev", "version": "2.6.0-dev",
"license": "GNU Affero General Public License v3.0", "license": "GNU Affero General Public License v3.0",
"dependencies": { "dependencies": {
"@angular-devkit/build-angular": "^14.2.10", "@angular-devkit/build-angular": "^14.2.10",

View File

@ -1,6 +1,6 @@
{ {
"name": "mempool-frontend", "name": "mempool-frontend",
"version": "2.5.0-dev", "version": "2.6.0-dev",
"description": "Bitcoin mempool visualizer and blockchain explorer backend", "description": "Bitcoin mempool visualizer and blockchain explorer backend",
"license": "GNU Affero General Public License v3.0", "license": "GNU Affero General Public License v3.0",
"homepage": "https://mempool.space", "homepage": "https://mempool.space",

View File

@ -201,12 +201,12 @@
<span>Umbrel</span> <span>Umbrel</span>
</a> </a>
<a href="https://github.com/rootzoll/raspiblitz" target="_blank" title="RaspiBlitz"> <a href="https://github.com/rootzoll/raspiblitz" target="_blank" title="RaspiBlitz">
<img class="image" src="/resources/profile/raspiblitz.jpg" /> <img class="image" src="/resources/profile/raspiblitz.svg" />
<span>RaspiBlitz</span> <span>RaspiBlitz</span>
</a> </a>
<a href="https://github.com/mynodebtc/mynode" target="_blank" title="MyNode"> <a href="https://github.com/mynodebtc/mynode" target="_blank" title="myNode">
<img class="image" src="/resources/profile/mynodebtc.jpg" /> <img class="image" src="/resources/profile/mynodebtc.png" />
<span>MyNode</span> <span>myNode</span>
</a> </a>
<a href="https://github.com/RoninDojo/RoninDojo" target="_blank" title="RoninDojo"> <a href="https://github.com/RoninDojo/RoninDojo" target="_blank" title="RoninDojo">
<img class="image" src="/resources/profile/ronindojo.png" /> <img class="image" src="/resources/profile/ronindojo.png" />

View File

@ -25,7 +25,7 @@
</ng-template> </ng-template>
<div [attr.data-cy]="'bitcoin-block-' + offset + '-index-' + i + '-fee-span'" class="fee-span" <div [attr.data-cy]="'bitcoin-block-' + offset + '-index-' + i + '-fee-span'" class="fee-span"
*ngIf="block?.extras?.feeRange; else emptyfeespan"> *ngIf="block?.extras?.feeRange; else emptyfeespan">
{{ block?.extras?.feeRange?.[1] | number:feeRounding }} - {{ {{ block?.extras?.feeRange?.[0] | number:feeRounding }} - {{
block?.extras?.feeRange[block?.extras?.feeRange?.length - 1] | number:feeRounding }} <ng-container block?.extras?.feeRange[block?.extras?.feeRange?.length - 1] | number:feeRounding }} <ng-container
i18n="shared.sat-vbyte|sat/vB">sat/vB</ng-container> i18n="shared.sat-vbyte|sat/vB">sat/vB</ng-container>
</div> </div>

View File

@ -156,4 +156,5 @@
.symbol { .symbol {
font-size: 13px; font-size: 13px;
white-space: nowrap;
} }

View File

@ -42,7 +42,7 @@
<div class="symbol" i18n="difficulty-box.average-block-time">Average block time</div> <div class="symbol" i18n="difficulty-box.average-block-time">Average block time</div>
</div> </div>
<div class="item"> <div class="item">
<div *ngIf="epochData.remainingBlocks < 1870; else recentlyAdjusted" class="card-text" [ngStyle]="{'color': epochData.colorAdjustments}"> <div *ngIf="epochData.remainingBlocks < 1870; else recentlyAdjusted" class="card-text bigger" [ngStyle]="{'color': epochData.colorAdjustments}">
<span *ngIf="epochData.change > 0; else arrowDownDifficulty" > <span *ngIf="epochData.change > 0; else arrowDownDifficulty" >
<fa-icon class="retarget-sign" [icon]="['fas', 'caret-up']" [fixedWidth]="true"></fa-icon> <fa-icon class="retarget-sign" [icon]="['fas', 'caret-up']" [fixedWidth]="true"></fa-icon>
</span> </span>

View File

@ -30,9 +30,14 @@
} }
} }
.card-text { .card-text {
font-size: 20px; font-size: 18px;
margin: auto; margin: auto;
position: relative; position: relative;
margin-bottom: 0.2rem;
&.bigger {
font-size: 20px;
margin-bottom: 0;
}
} }
} }
@ -160,6 +165,7 @@
.symbol { .symbol {
font-size: 13px; font-size: 13px;
white-space: nowrap;
} }
.epoch-progress { .epoch-progress {

View File

@ -62,6 +62,21 @@
</nav> </nav>
</header> </header>
<div *ngIf="network.val === 'testnet' || network.val === 'signet' || network.val === 'liquidtestnet'">
<div class="container p-lg-0 pb-0" style="max-width: 100%; margin-top: 7px" *ngIf="storageService.getValue('hideWarning') !== 'hidden'">
<div class="alert alert-danger mb-0 text-center">
<div class="d-flex justify-content-center align-items-center">
<fa-icon class="between-arrow mr-1" [icon]="['fas', 'exclamation-triangle']" [fixedWidth]="true"></fa-icon>
<span i18n="warning-testnet">This is a test network. Coins have no value</span>
<fa-icon class="between-arrow ml-1" [icon]="['fas', 'exclamation-triangle']" [fixedWidth]="true"></fa-icon>
</div>
<button type="button" class="close" (click)="dismissWarning()">
<span aria-hidden="true">&times;</span>
</button>
</div>
</div>
</div>
<br /> <br />
<router-outlet></router-outlet> <router-outlet></router-outlet>

View File

@ -193,3 +193,18 @@ nav {
font-size: 7px; font-size: 7px;
} }
} }
.close {
position: absolute;
color: black;
right: 10px;
top: 17px;
@media (max-width: 620px) {
right: 10px;
top: 0px;
};
@media (min-width: 992px) {
right: 10px;
top: 13px;
};
}

View File

@ -4,6 +4,7 @@ import { Observable, merge, of } from 'rxjs';
import { LanguageService } from '../../services/language.service'; import { LanguageService } from '../../services/language.service';
import { EnterpriseService } from '../../services/enterprise.service'; import { EnterpriseService } from '../../services/enterprise.service';
import { NavigationService } from '../../services/navigation.service'; import { NavigationService } from '../../services/navigation.service';
import { StorageService } from '../../services/storage.service';
@Component({ @Component({
selector: 'app-master-page', selector: 'app-master-page',
@ -26,6 +27,7 @@ export class MasterPageComponent implements OnInit {
private languageService: LanguageService, private languageService: LanguageService,
private enterpriseService: EnterpriseService, private enterpriseService: EnterpriseService,
private navigationService: NavigationService, private navigationService: NavigationService,
public storageService: StorageService
) { } ) { }
ngOnInit() { ngOnInit() {
@ -46,4 +48,8 @@ export class MasterPageComponent implements OnInit {
onResize(event: any) { onResize(event: any) {
this.isMobile = window.innerWidth <= 767.98; this.isMobile = window.innerWidth <= 767.98;
} }
dismissWarning() {
this.storageService.setValue('hideWarning', 'hidden');
}
} }

View File

@ -32,7 +32,7 @@
</div> </div>
<div class="card-header" *ngIf="!widget"> <div class="card-header" *ngIf="!widget">
<div class="d-flex d-md-block align-items-baseline"> <div class="d-flex d-md-table-cell align-items-baseline">
<span i18n="mining.pools">Pools Ranking</span> <span i18n="mining.pools">Pools Ranking</span>
<button class="btn p-0 pl-2" style="margin: 0 0 4px 0px" (click)="onSaveChart()"> <button class="btn p-0 pl-2" style="margin: 0 0 4px 0px" (click)="onSaveChart()">
<fa-icon [icon]="['fas', 'download']" [fixedWidth]="true"></fa-icon> <fa-icon [icon]="['fas', 'download']" [fixedWidth]="true"></fa-icon>
@ -87,19 +87,19 @@
<table *ngIf="widget === false" class="table table-borderless text-center pools-table"> <table *ngIf="widget === false" class="table table-borderless text-center pools-table">
<thead> <thead>
<tr> <tr>
<th class="d-none d-md-block" i18n="mining.rank">Rank</th> <th class="d-none d-md-table-cell" i18n="mining.rank">Rank</th>
<th class=""></th> <th class=""></th>
<th class="" i18n="mining.pool-name">Pool</th> <th class="" i18n="mining.pool-name">Pool</th>
<th class="" *ngIf="this.miningWindowPreference === '24h'" i18n="mining.hashrate">Hashrate</th> <th class="" *ngIf="this.miningWindowPreference === '24h'" i18n="mining.hashrate">Hashrate</th>
<th class="" i18n="master-page.blocks">Blocks</th> <th class="" i18n="master-page.blocks">Blocks</th>
<th *ngIf="auditAvailable" class="health text-right widget" i18n="latest-blocks.avg_health" <th *ngIf="auditAvailable" class="health text-right widget" i18n="latest-blocks.avg_health"
i18n-ngbTooltip="latest-blocks.avg_health" ngbTooltip="Avg Health" placement="bottom" #health [disableTooltip]="!isEllipsisActive(health)">Avg Health</th> i18n-ngbTooltip="latest-blocks.avg_health" ngbTooltip="Avg Health" placement="bottom" #health [disableTooltip]="!isEllipsisActive(health)">Avg Health</th>
<th class="d-none d-md-block" i18n="mining.empty-blocks">Empty blocks</th> <th class="d-none d-md-table-cell" i18n="mining.empty-blocks">Empty blocks</th>
</tr> </tr>
</thead> </thead>
<tbody [attr.data-cy]="'pools-table'" *ngIf="(miningStatsObservable$ | async) as miningStats"> <tbody [attr.data-cy]="'pools-table'" *ngIf="(miningStatsObservable$ | async) as miningStats">
<tr *ngFor="let pool of miningStats.pools"> <tr *ngFor="let pool of miningStats.pools">
<td class="d-none d-md-block">{{ pool.rank }}</td> <td class="d-none d-md-table-cell">{{ pool.rank }}</td>
<td class="text-right"> <td class="text-right">
<img width="25" height="25" src="{{ pool.logo }}" [alt]="pool.name + ' mining pool logo'" onError="this.src = '/resources/mining-pools/default.svg'"> <img width="25" height="25" src="{{ pool.logo }}" [alt]="pool.name + ' mining pool logo'" onError="this.src = '/resources/mining-pools/default.svg'">
</td> </td>
@ -107,7 +107,7 @@
<td class="" *ngIf="this.miningWindowPreference === '24h'">{{ pool.lastEstimatedHashrate }} {{ <td class="" *ngIf="this.miningWindowPreference === '24h'">{{ pool.lastEstimatedHashrate }} {{
miningStats.miningUnits.hashrateUnit }}</td> miningStats.miningUnits.hashrateUnit }}</td>
<td class="d-flex justify-content-center"> <td class="d-flex justify-content-center">
{{ pool.blockCount }}<span class="d-none d-md-block">&nbsp;({{ pool.share }}%)</span> {{ pool.blockCount }}<span class="d-none d-md-table-cell">&nbsp;({{ pool.share }}%)</span>
</td> </td>
<td *ngIf="auditAvailable" class="health text-right" [ngClass]="{'widget': widget, 'legacy': !indexingAvailable}"> <td *ngIf="auditAvailable" class="health text-right" [ngClass]="{'widget': widget, 'legacy': !indexingAvailable}">
<a <a
@ -121,16 +121,16 @@
<span class="health-badge badge badge-secondary" i18n="unknown">Unknown</span> <span class="health-badge badge badge-secondary" i18n="unknown">Unknown</span>
</ng-template> </ng-template>
</td> </td>
<td class="d-none d-md-block">{{ pool.emptyBlocks }} ({{ pool.emptyBlockRatio }}%)</td> <td class="d-none d-md-table-cell">{{ pool.emptyBlocks }} ({{ pool.emptyBlockRatio }}%)</td>
</tr> </tr>
<tr style="border-top: 1px solid #555"> <tr style="border-top: 1px solid #555">
<td class="d-none d-md-block"></td> <td class="d-none d-md-table-cell"></td>
<td class="text-right"></td> <td class="text-right"></td>
<td class=""><b i18n="mining.all-miners">All miners</b></td> <td class=""><b i18n="mining.all-miners">All miners</b></td>
<td class="" *ngIf="this.miningWindowPreference === '24h'"><b>{{ miningStats.lastEstimatedHashrate}} {{ <td class="" *ngIf="this.miningWindowPreference === '24h'"><b>{{ miningStats.lastEstimatedHashrate}} {{
miningStats.miningUnits.hashrateUnit }}</b></td> miningStats.miningUnits.hashrateUnit }}</b></td>
<td class=""><b>{{ miningStats.blockCount }}</b></td> <td class=""><b>{{ miningStats.blockCount }}</b></td>
<td class="d-none d-md-block"><b>{{ miningStats.totalEmptyBlock }} ({{ miningStats.totalEmptyBlockRatio <td class="d-none d-md-table-cell"><b>{{ miningStats.totalEmptyBlock }} ({{ miningStats.totalEmptyBlockRatio
}}%)</b></td> }}%)</b></td>
</tr> </tr>
</tbody> </tbody>

View File

@ -94,13 +94,13 @@
<tr> <tr>
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="mining.reward">Reward</th> <th scope="col" class="block-count-title text-center" style="width: 33%" i18n="mining.reward">Reward</th>
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="mining.hashrate">Hashrate (24h)</th> <th scope="col" class="block-count-title text-center" style="width: 33%" i18n="mining.hashrate">Hashrate (24h)</th>
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="latest-blocks.avg_health">Avg Health</th> <th scope="col" class="block-count-title text-center" style="width: 33%" i18n="latest-blocks.avg_health" *ngIf="auditAvailable">Avg Health</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<td class="text-center"><app-amount [satoshis]="poolStats.totalReward" digitsInfo="1.0-0" [noFiat]="true"></app-amount></td> <td class="text-center"><app-amount [satoshis]="poolStats.totalReward" digitsInfo="1.0-0" [noFiat]="true"></app-amount></td>
<td class="text-center">{{ poolStats.estimatedHashrate | amountShortener : 1 : 'H/s' }}</td> <td class="text-center">{{ poolStats.estimatedHashrate | amountShortener : 1 : 'H/s' }}</td>
<td class="text-center"><span class="health-badge badge" [class.badge-success]="poolStats.avgBlockHealth >= 99" <td class="text-center" *ngIf="auditAvailable; else emptyTd"><span class="health-badge badge" [class.badge-success]="poolStats.avgBlockHealth >= 99"
[class.badge-warning]="poolStats.avgBlockHealth >= 75 && poolStats.avgBlockHealth < 99" [class.badge-danger]="poolStats.avgBlockHealth < 75" [class.badge-warning]="poolStats.avgBlockHealth >= 75 && poolStats.avgBlockHealth < 99" [class.badge-danger]="poolStats.avgBlockHealth < 75"
*ngIf="poolStats.avgBlockHealth != null; else nullHealth">{{ poolStats.avgBlockHealth }}%</span> *ngIf="poolStats.avgBlockHealth != null; else nullHealth">{{ poolStats.avgBlockHealth }}%</span>
<ng-template #nullHealth> <ng-template #nullHealth>
@ -119,13 +119,13 @@
<tr> <tr>
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="mining.reward">Reward</th> <th scope="col" class="block-count-title text-center" style="width: 33%" i18n="mining.reward">Reward</th>
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="mining.hashrate">Hashrate (24h)</th> <th scope="col" class="block-count-title text-center" style="width: 33%" i18n="mining.hashrate">Hashrate (24h)</th>
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="latest-blocks.avg_health">Avg Health</th> <th scope="col" class="block-count-title text-center" style="width: 33%" i18n="latest-blocks.avg_health" *ngIf="auditAvailable">Avg Health</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<td class="text-center"><app-amount [satoshis]="poolStats.totalReward" digitsInfo="1.0-0" [noFiat]="true"></app-amount></td> <td class="text-center"><app-amount [satoshis]="poolStats.totalReward" digitsInfo="1.0-0" [noFiat]="true"></app-amount></td>
<td class="text-center">{{ poolStats.estimatedHashrate | amountShortener : 1 : 'H/s' }}</td> <td class="text-center">{{ poolStats.estimatedHashrate | amountShortener : 1 : 'H/s' }}</td>
<td class="text-center"><span class="health-badge badge" [class.badge-success]="poolStats.avgBlockHealth >= 99" <td *ngIf="auditAvailable; else emptyTd" class="text-center"><span class="health-badge badge" [class.badge-success]="poolStats.avgBlockHealth >= 99"
[class.badge-warning]="poolStats.avgBlockHealth >= 75 && poolStats.avgBlockHealth < 99" [class.badge-danger]="poolStats.avgBlockHealth < 75" [class.badge-warning]="poolStats.avgBlockHealth >= 75 && poolStats.avgBlockHealth < 99" [class.badge-danger]="poolStats.avgBlockHealth < 75"
*ngIf="poolStats.avgBlockHealth != null; else nullHealth">{{ poolStats.avgBlockHealth }}%</span> *ngIf="poolStats.avgBlockHealth != null; else nullHealth">{{ poolStats.avgBlockHealth }}%</span>
<ng-template #nullHealth> <ng-template #nullHealth>
@ -384,7 +384,7 @@
<tr> <tr>
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="mining.total-reward">Reward</th> <th scope="col" class="block-count-title text-center" style="width: 33%" i18n="mining.total-reward">Reward</th>
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="mining.estimated">Hashrate (24h)</th> <th scope="col" class="block-count-title text-center" style="width: 33%" i18n="mining.estimated">Hashrate (24h)</th>
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="mining.luck">Avg Health</th> <th scope="col" class="block-count-title text-center" style="width: 33%" i18n="mining.luck" *ngIf="auditAvailable">Avg Health</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@ -394,7 +394,7 @@
<td class="text-center"> <td class="text-center">
<div class="skeleton-loader data"></div> <div class="skeleton-loader data"></div>
</td> </td>
<td class="text-center"> <td class="text-center" *ngIf="auditAvailable">
<div class="skeleton-loader data"></div> <div class="skeleton-loader data"></div>
</td> </td>
</tbody> </tbody>
@ -409,7 +409,7 @@
<tr> <tr>
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="mining.total-reward">Reward</th> <th scope="col" class="block-count-title text-center" style="width: 33%" i18n="mining.total-reward">Reward</th>
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="mining.estimated">Hashrate (24h)</th> <th scope="col" class="block-count-title text-center" style="width: 33%" i18n="mining.estimated">Hashrate (24h)</th>
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="mining.luck">Avg Health</th> <th scope="col" class="block-count-title text-center" style="width: 33%" i18n="mining.luck" *ngIf="auditAvailable">Avg Health</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@ -419,7 +419,7 @@
<td class="text-center"> <td class="text-center">
<div class="skeleton-loader data"></div> <div class="skeleton-loader data"></div>
</td> </td>
<td class="text-center"> <td class="text-center" *ngIf="auditAvailable">
<div class="skeleton-loader data"></div> <div class="skeleton-loader data"></div>
</td> </td>
</tbody> </tbody>
@ -486,3 +486,7 @@
</div> </div>
</div> </div>
</ng-template> </ng-template>
<ng-template #emptyTd>
<td class="text-center"></td>
</ng-template>

View File

@ -8,10 +8,7 @@
</div> </div>
<div *ngIf="network !== 'liquid' && network !== 'liquidtestnet'" class="features"> <div *ngIf="network !== 'liquid' && network !== 'liquidtestnet'" class="features">
<app-tx-features [tx]="tx"></app-tx-features> <app-tx-features [tx]="tx"></app-tx-features>
<span *ngIf="cpfpInfo && (cpfpInfo.bestDescendant || cpfpInfo.descendants.length)" class="badge badge-primary mr-1"> <span *ngIf="cpfpInfo && (cpfpInfo?.bestDescendant || cpfpInfo?.descendants?.length || cpfpInfo?.ancestors?.length)" class="badge badge-primary ml-1 mr-1">
CPFP
</span>
<span *ngIf="cpfpInfo && !cpfpInfo.bestDescendant && !cpfpInfo.descendants.length && cpfpInfo.ancestors.length" class="badge badge-info mr-1">
CPFP CPFP
</span> </span>
</div> </div>

View File

@ -1,3 +1,5 @@
<div infiniteScroll [alwaysCallback]="true" [infiniteScrollDistance]="2" [infiniteScrollUpDistance]="1.5" [infiniteScrollThrottle]="50" (scrolled)="onScroll()">
<ng-container *ngFor="let tx of transactions; let i = index; trackBy: trackByFn"> <ng-container *ngFor="let tx of transactions; let i = index; trackBy: trackByFn">
<div *ngIf="!transactionPage" class="header-bg box tx-page-container"> <div *ngIf="!transactionPage" class="header-bg box tx-page-container">
<a class="tx-link" [routerLink]="['/tx/' | relativeUrl, tx.txid]"> <a class="tx-link" [routerLink]="['/tx/' | relativeUrl, tx.txid]">
@ -11,7 +13,7 @@
</div> </div>
</div> </div>
<div class="header-bg box" infiniteScroll [alwaysCallback]="true" [infiniteScrollDistance]="2" [infiniteScrollUpDistance]="1.5" [infiniteScrollThrottle]="50" (scrolled)="onScroll()" [attr.data-cy]="'tx-' + i"> <div class="header-bg box">
<div *ngIf="errorUnblinded" class="error-unblinded">{{ errorUnblinded }}</div> <div *ngIf="errorUnblinded" class="error-unblinded">{{ errorUnblinded }}</div>
<div class="row"> <div class="row">
@ -321,6 +323,8 @@
</ng-container> </ng-container>
</div>
<ng-template #assetBox let-item> <ng-template #assetBox let-item>
{{ item.value / pow(10, assetsMinimal[item.asset][3]) | number: '1.' + assetsMinimal[item.asset][3] + '-' + assetsMinimal[item.asset][3] }} {{ assetsMinimal[item.asset][1] }} {{ item.value / pow(10, assetsMinimal[item.asset][3]) | number: '1.' + assetsMinimal[item.asset][3] + '-' + assetsMinimal[item.asset][3] }} {{ assetsMinimal[item.asset][1] }}
<br /> <br />

View File

@ -182,15 +182,8 @@ export class TransactionsListComponent implements OnInit, OnChanges {
} }
onScroll(): void { onScroll(): void {
const scrollHeight = document.body.scrollHeight;
const scrollTop = document.documentElement.scrollTop;
if (scrollHeight > 0){
const percentageScrolled = scrollTop * 100 / scrollHeight;
if (percentageScrolled > 70){
this.loadMore.emit(); this.loadMore.emit();
} }
}
}
haveBlindedOutputValues(tx: Transaction): boolean { haveBlindedOutputValues(tx: Transaction): boolean {
return tx.vout.some((v: any) => v.value === undefined); return tx.vout.some((v: any) => v.value === undefined);

View File

@ -29,7 +29,7 @@
<ng-template #pegout> <ng-template #pegout>
<ng-container *ngIf="line.pegout; else normal"> <ng-container *ngIf="line.pegout; else normal">
<p *ngIf="!isConnector">Peg Out</p> <p *ngIf="!isConnector">Peg Out</p>
<p *ngIf="line.value != null"><app-amount [satoshis]="line.value"></app-amount></p> <p *ngIf="line.displayValue != null"><app-amount [satoshis]="line.displayValue"></app-amount></p>
<p class="address"> <p class="address">
<app-truncate [text]="line.pegout"></app-truncate> <app-truncate [text]="line.pegout"></app-truncate>
</p> </p>
@ -55,18 +55,18 @@
<p *ngSwitchCase="'output'"><span i18n="transaction.input">Input</span>&nbsp; #{{ line.vin + 1 }}</p> <p *ngSwitchCase="'output'"><span i18n="transaction.input">Input</span>&nbsp; #{{ line.vin + 1 }}</p>
</ng-container> </ng-container>
</ng-container> </ng-container>
<p *ngIf="line.value == null && line.confidential" i18n="shared.confidential">Confidential</p> <p *ngIf="line.displayValue == null && line.confidential" i18n="shared.confidential">Confidential</p>
<p *ngIf="line.value != null"> <p *ngIf="line.displayValue != null">
<ng-template [ngIf]="line.asset && line.asset !== nativeAssetId" [ngIfElse]="defaultOutput"> <ng-template [ngIf]="line.asset && line.asset !== nativeAssetId" [ngIfElse]="defaultOutput">
<div *ngIf="assetsMinimal && assetsMinimal[line.asset] else assetNotFound"> <div *ngIf="assetsMinimal && assetsMinimal[line.asset] else assetNotFound">
<ng-container *ngTemplateOutlet="assetBox; context:{ $implicit: line }"></ng-container> <ng-container *ngTemplateOutlet="assetBox; context:{ $implicit: line }"></ng-container>
</div> </div>
<ng-template #assetNotFound> <ng-template #assetNotFound>
{{ line.value }} <span class="symbol">{{ line.asset | slice : 0 : 7 }}</span> {{ line.displayValue }} <span class="symbol">{{ line.asset | slice : 0 : 7 }}</span>
</ng-template> </ng-template>
</ng-template> </ng-template>
<ng-template #defaultOutput> <ng-template #defaultOutput>
<app-amount [blockConversion]="blockConversion" [satoshis]="line.value"></app-amount> <app-amount [blockConversion]="blockConversion" [satoshis]="line.displayValue"></app-amount>
</ng-template> </ng-template>
</p> </p>
<p *ngIf="line.type !== 'fee' && line.address" class="address"> <p *ngIf="line.type !== 'fee' && line.address" class="address">
@ -76,5 +76,5 @@
</div> </div>
<ng-template #assetBox let-item> <ng-template #assetBox let-item>
{{ item.value / pow(10, assetsMinimal[item.asset][3]) | number: '1.' + assetsMinimal[item.asset][3] + '-' + assetsMinimal[item.asset][3] }} <span class="symbol">{{ assetsMinimal[item.asset][1] }}</span> {{ item.displayValue / pow(10, assetsMinimal[item.asset][3]) | number: '1.' + assetsMinimal[item.asset][3] + '-' + assetsMinimal[item.asset][3] }} <span class="symbol">{{ assetsMinimal[item.asset][1] }}</span>
</ng-template> </ng-template>

View File

@ -7,6 +7,7 @@ import { environment } from '../../../environments/environment';
interface Xput { interface Xput {
type: 'input' | 'output' | 'fee'; type: 'input' | 'output' | 'fee';
value?: number; value?: number;
displayValue?: number;
index?: number; index?: number;
txid?: string; txid?: string;
vin?: number; vin?: number;

View File

@ -1,12 +1,13 @@
import { Component, OnInit, Input, OnChanges, HostListener, Inject, LOCALE_ID } from '@angular/core'; import { Component, OnInit, Input, OnChanges, HostListener, Inject, LOCALE_ID } from '@angular/core';
import { StateService } from '../../services/state.service'; import { StateService } from '../../services/state.service';
import { Outspend, Transaction } from '../../interfaces/electrs.interface'; import { Outspend, Transaction, Vin, Vout } from '../../interfaces/electrs.interface';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { ReplaySubject, merge, Subscription, of } from 'rxjs'; import { ReplaySubject, merge, Subscription, of } from 'rxjs';
import { tap, switchMap } from 'rxjs/operators'; import { tap, switchMap } from 'rxjs/operators';
import { ApiService } from '../../services/api.service'; import { ApiService } from '../../services/api.service';
import { RelativeUrlPipe } from '../../shared/pipes/relative-url/relative-url.pipe'; import { RelativeUrlPipe } from '../../shared/pipes/relative-url/relative-url.pipe';
import { AssetsService } from '../../services/assets.service'; import { AssetsService } from '../../services/assets.service';
import { environment } from '../../../environments/environment';
interface SvgLine { interface SvgLine {
path: string; path: string;
@ -20,6 +21,7 @@ interface SvgLine {
interface Xput { interface Xput {
type: 'input' | 'output' | 'fee'; type: 'input' | 'output' | 'fee';
value?: number; value?: number;
displayValue?: number;
index?: number; index?: number;
txid?: string; txid?: string;
vin?: number; vin?: number;
@ -74,6 +76,7 @@ export class TxBowtieGraphComponent implements OnInit, OnChanges {
zeroValueThickness = 20; zeroValueThickness = 20;
hasLine: boolean; hasLine: boolean;
assetsMinimal: any; assetsMinimal: any;
nativeAssetId = this.stateService.network === 'liquidtestnet' ? environment.nativeTestAssetId : environment.nativeAssetId;
outspendsSubscription: Subscription; outspendsSubscription: Subscription;
refreshOutspends$: ReplaySubject<string> = new ReplaySubject(); refreshOutspends$: ReplaySubject<string> = new ReplaySubject();
@ -167,7 +170,8 @@ export class TxBowtieGraphComponent implements OnInit, OnChanges {
let voutWithFee = this.tx.vout.map((v, i) => { let voutWithFee = this.tx.vout.map((v, i) => {
return { return {
type: v.scriptpubkey_type === 'fee' ? 'fee' : 'output', type: v.scriptpubkey_type === 'fee' ? 'fee' : 'output',
value: v?.value, value: this.getOutputValue(v),
displayValue: v?.value,
address: v?.scriptpubkey_address || v?.scriptpubkey_type?.toUpperCase(), address: v?.scriptpubkey_address || v?.scriptpubkey_type?.toUpperCase(),
index: i, index: i,
pegout: v?.pegout?.scriptpubkey_address, pegout: v?.pegout?.scriptpubkey_address,
@ -185,7 +189,8 @@ export class TxBowtieGraphComponent implements OnInit, OnChanges {
let truncatedInputs = this.tx.vin.map((v, i) => { let truncatedInputs = this.tx.vin.map((v, i) => {
return { return {
type: 'input', type: 'input',
value: v?.prevout?.value || (v?.is_coinbase && !totalValue ? 0 : undefined), value: (v?.is_coinbase && !totalValue ? 0 : this.getInputValue(v)),
displayValue: v?.prevout?.value,
txid: v.txid, txid: v.txid,
vout: v.vout, vout: v.vout,
address: v?.prevout?.scriptpubkey_address || v?.prevout?.scriptpubkey_type?.toUpperCase(), address: v?.prevout?.scriptpubkey_address || v?.prevout?.scriptpubkey_type?.toUpperCase(),
@ -229,14 +234,14 @@ export class TxBowtieGraphComponent implements OnInit, OnChanges {
} }
calcTotalValue(tx: Transaction): number { calcTotalValue(tx: Transaction): number {
const totalOutput = this.tx.vout.reduce((acc, v) => (v.value == null ? 0 : v.value) + acc, 0); let totalOutput = this.tx.vout.reduce((acc, v) => (this.getOutputValue(v) || 0) + acc, 0);
// simple sum of outputs + fee for bitcoin // simple sum of outputs + fee for bitcoin
if (!this.isLiquid) { if (!this.isLiquid) {
return this.tx.fee ? totalOutput + this.tx.fee : totalOutput; return this.tx.fee ? totalOutput + this.tx.fee : totalOutput;
} else { } else {
const totalInput = this.tx.vin.reduce((acc, v) => (v?.prevout?.value == null ? 0 : v.prevout.value) + acc, 0); const totalInput = this.tx.vin.reduce((acc, v) => (this.getInputValue(v) || 0) + acc, 0);
const confidentialInputCount = this.tx.vin.reduce((acc, v) => acc + (v?.prevout?.value == null ? 1 : 0), 0); const confidentialInputCount = this.tx.vin.reduce((acc, v) => acc + (this.isUnknownInputValue(v) ? 1 : 0), 0);
const confidentialOutputCount = this.tx.vout.reduce((acc, v) => acc + (v.value == null ? 1 : 0), 0); const confidentialOutputCount = this.tx.vout.reduce((acc, v) => acc + (this.isUnknownOutputValue(v) ? 1 : 0), 0);
// if there are unknowns on both sides, the total is indeterminate, so we'll just fudge it // if there are unknowns on both sides, the total is indeterminate, so we'll just fudge it
if (confidentialInputCount && confidentialOutputCount) { if (confidentialInputCount && confidentialOutputCount) {
@ -456,6 +461,34 @@ export class TxBowtieGraphComponent implements OnInit, OnChanges {
} }
} }
getOutputValue(v: Vout): number | void {
if (!v) {
return null;
} else if (this.isLiquid && v.asset !== this.nativeAssetId) {
return null;
} else {
return v.value;
}
}
getInputValue(v: Vin): number | void {
if (!v?.prevout) {
return null;
} else if (this.isLiquid && v.prevout.asset !== this.nativeAssetId) {
return null;
} else {
return v.prevout.value;
}
}
isUnknownInputValue(v: Vin): boolean {
return v?.prevout?.value == null || this.isLiquid && v?.prevout?.asset !== this.nativeAssetId;
}
isUnknownOutputValue(v: Vout): boolean {
return v?.value == null || this.isLiquid && v?.asset !== this.nativeAssetId;
}
@HostListener('pointermove', ['$event']) @HostListener('pointermove', ['$event'])
onPointerMove(event) { onPointerMove(event) {
if (this.dir === 'rtl') { if (this.dir === 'rtl') {

View File

@ -8863,7 +8863,7 @@ export const faqData = [
type: "endpoint", type: "endpoint",
category: "advanced", category: "advanced",
showConditions: bitcoinNetworks, showConditions: bitcoinNetworks,
fragment: "how-big-is-mempool-used-by-mempool.space", fragment: "how-big-is-mempool-used-by-mempool-space",
title: "How big is the mempool used by mempool.space?", title: "How big is the mempool used by mempool.space?",
options: { officialOnly: true }, options: { officialOnly: true },
}, },

View File

@ -207,7 +207,7 @@
<p>When a Bitcoin transaction is made, it is stored in a Bitcoin node's mempool before it is confirmed into a block. When the rate of incoming transactions exceeds the rate transactions are confirmed, the mempool grows in size.</p><p>By default, Bitcoin Core allocates 300MB of memory for its mempool, so when a node's mempool grows big enough to use all 300MB of allocated memory, we say it's "full".</p><p>Once a node's mempool is using all of its allocated memory, it will start rejecting new transactions below a certain feerate threshold—so when this is the case, be extra sure to set a feerate that (at a minimum) exceeds that threshold. The current threshold feerate (and memory usage) are displayed right on Mempool's front page.</p> <p>When a Bitcoin transaction is made, it is stored in a Bitcoin node's mempool before it is confirmed into a block. When the rate of incoming transactions exceeds the rate transactions are confirmed, the mempool grows in size.</p><p>By default, Bitcoin Core allocates 300MB of memory for its mempool, so when a node's mempool grows big enough to use all 300MB of allocated memory, we say it's "full".</p><p>Once a node's mempool is using all of its allocated memory, it will start rejecting new transactions below a certain feerate threshold—so when this is the case, be extra sure to set a feerate that (at a minimum) exceeds that threshold. The current threshold feerate (and memory usage) are displayed right on Mempool's front page.</p>
</ng-template> </ng-template>
<ng-template type="how-big-is-mempool-used-by-mempool.space"> <ng-template type="how-big-is-mempool-used-by-mempool-space">
<p>mempool.space uses multiple Bitcoin nodes to obtain data: some with the default 300MB mempool memory limit (call these Small Nodes) and others with a much larger mempool memory limit (call these Big Nodes).</p> <p>mempool.space uses multiple Bitcoin nodes to obtain data: some with the default 300MB mempool memory limit (call these Small Nodes) and others with a much larger mempool memory limit (call these Big Nodes).</p>
<p>Many nodes on the Bitcoin network are configured to run with the default 300MB mempool memory setting. When all 300MB of memory are used up, such nodes will reject transactions below a certain threshold feerate. Running Small Nodes allows mempool.space to tell you what this threshold feerate is—this is the "Purging" feerate that shows on the front page when mempools are full, which you can use to be reasonably sure that your transaction will be widely propagated.</p> <p>Many nodes on the Bitcoin network are configured to run with the default 300MB mempool memory setting. When all 300MB of memory are used up, such nodes will reject transactions below a certain threshold feerate. Running Small Nodes allows mempool.space to tell you what this threshold feerate is—this is the "Purging" feerate that shows on the front page when mempools are full, which you can use to be reasonably sure that your transaction will be widely propagated.</p>
<p>Big Node mempools are so big that they don't need to reject (or purge) transactions. Such nodes allow for mempool.space to provide you with information on any pending transaction it has received—no matter how congested the mempool is, and no matter how low-feerate or low-priority the transaction is.</p> <p>Big Node mempools are so big that they don't need to reject (or purge) transactions. Such nodes allow for mempool.space to provide you with information on any pending transaction it has received—no matter how congested the mempool is, and no matter how low-feerate or low-priority the transaction is.</p>

View File

@ -2,6 +2,6 @@
<h2 i18n="lightning.node-fee-distribution">Fee distribution</h2> <h2 i18n="lightning.node-fee-distribution">Fee distribution</h2>
<div class="chart" echarts [initOpts]="chartInitOptions" [options]="chartOptions" (chartInit)="onChartInit($event)"></div> <div class="chart" echarts [initOpts]="chartInitOptions" [options]="chartOptions" (chartInit)="onChartInit($event)"></div>
<div class="text-center loadingGraphs" *ngIf="isLoading"> <div class="text-center loadingGraphs" *ngIf="isLoading">
<div class="spinner-border text-light"></div>d <div class="spinner-border text-light"></div>
</div> </div>
</div> </div>

View File

@ -101,8 +101,15 @@ export class NodeFeeChartComponent implements OnInit {
} }
prepareChartOptions(outgoingData, incomingData): void { prepareChartOptions(outgoingData, incomingData): void {
let sum = outgoingData.reduce((accumulator, object) => {
return accumulator + object.count;
}, 0);
sum += incomingData.reduce((accumulator, object) => {
return accumulator + object.count;
}, 0);
let title: object; let title: object;
if (outgoingData.length === 0) { if (sum === 0) {
title = { title = {
textStyle: { textStyle: {
color: 'grey', color: 'grey',
@ -115,7 +122,7 @@ export class NodeFeeChartComponent implements OnInit {
} }
this.chartOptions = { this.chartOptions = {
title: outgoingData.length === 0 ? title : undefined, title: sum === 0 ? title : undefined,
animation: false, animation: false,
grid: { grid: {
top: 30, top: 30,
@ -151,7 +158,7 @@ export class NodeFeeChartComponent implements OnInit {
`; `;
} }
}, },
xAxis: outgoingData.length === 0 ? undefined : { xAxis: sum === 0 ? undefined : {
type: 'category', type: 'category',
axisLine: { onZero: true }, axisLine: { onZero: true },
axisLabel: { axisLabel: {
@ -163,7 +170,7 @@ export class NodeFeeChartComponent implements OnInit {
}, },
data: outgoingData.map(bucket => bucket.label) data: outgoingData.map(bucket => bucket.label)
}, },
legend: outgoingData.length === 0 ? undefined : { legend: sum === 0 ? undefined : {
padding: 10, padding: 10,
data: [ data: [
{ {
@ -184,7 +191,7 @@ export class NodeFeeChartComponent implements OnInit {
}, },
], ],
}, },
yAxis: outgoingData.length === 0 ? undefined : [ yAxis: sum === 0 ? undefined : [
{ {
type: 'value', type: 'value',
axisLabel: { axisLabel: {
@ -202,7 +209,7 @@ export class NodeFeeChartComponent implements OnInit {
}, },
}, },
], ],
series: outgoingData.length === 0 ? undefined : [ series: sum === 0 ? undefined : [
{ {
zlevel: 0, zlevel: 0,
name: $localize`Outgoing Fees`, name: $localize`Outgoing Fees`,

View File

@ -75,13 +75,13 @@ export class NodeStatisticsChartComponent implements OnInit {
prepareChartOptions(data) { prepareChartOptions(data) {
let title: object; let title: object;
if (data.channels.length === 0) { if (data.channels.length < 2) {
title = { title = {
textStyle: { textStyle: {
color: 'grey', color: 'grey',
fontSize: 15 fontSize: 15
}, },
text: `Loading`, text: $localize`No data to display yet. Try again later.`,
left: 'center', left: 'center',
top: 'center' top: 'center'
}; };
@ -135,14 +135,14 @@ export class NodeStatisticsChartComponent implements OnInit {
return tooltip; return tooltip;
} }
}, },
xAxis: data.channels.length === 0 ? undefined : { xAxis: data.channels.length < 2 ? undefined : {
type: 'time', type: 'time',
splitNumber: this.isMobile() ? 5 : 10, splitNumber: this.isMobile() ? 5 : 10,
axisLabel: { axisLabel: {
hideOverlap: true, hideOverlap: true,
} }
}, },
legend: data.channels.length === 0 ? undefined : { legend: data.channels.length < 2 ? undefined : {
padding: 10, padding: 10,
data: [ data: [
{ {
@ -167,7 +167,7 @@ export class NodeStatisticsChartComponent implements OnInit {
'Capacity': true, 'Capacity': true,
} }
}, },
yAxis: data.channels.length === 0 ? undefined : [ yAxis: data.channels.length < 2 ? undefined : [
{ {
type: 'value', type: 'value',
axisLabel: { axisLabel: {
@ -198,7 +198,7 @@ export class NodeStatisticsChartComponent implements OnInit {
} }
} }
], ],
series: data.channels.length === 0 ? [] : [ series: data.channels.length < 2 ? [] : [
{ {
zlevel: 1, zlevel: 1,
name: $localize`:@@807cf11e6ac1cde912496f764c176bdfdd6b7e19:Channels`, name: $localize`:@@807cf11e6ac1cde912496f764c176bdfdd6b7e19:Channels`,

View File

@ -12,7 +12,7 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md"> <div class="col-md table-col">
<a class="subtitle" [routerLink]="['/lightning/node' | relativeUrl, node.public_key]">{{ node.public_key }}</a> <a class="subtitle" [routerLink]="['/lightning/node' | relativeUrl, node.public_key]">{{ node.public_key }}</a>
<table class="table table-borderless table-striped"> <table class="table table-borderless table-striped">
<tbody> <tbody>

View File

@ -18,6 +18,10 @@
} }
} }
.table-col {
max-width: calc(100% - 470px);
}
.map-col { .map-col {
flex-grow: 0; flex-grow: 0;
flex-shrink: 0; flex-shrink: 0;

View File

@ -133,3 +133,10 @@
top: 450px; top: 450px;
} }
} }
.indexing-message {
position: absolute;
width: 100%;
text-align: center;
margin-top: 100px;
}

View File

@ -204,13 +204,21 @@ export class NodesChannelsMap implements OnInit {
prepareChartOptions(nodes, channels) { prepareChartOptions(nodes, channels) {
let title: object; let title: object;
if (channels.length === 0 && !this.placeholder) { if (channels.length === 0) {
this.chartOptions = null; if (!this.placeholder) {
return; this.isLoading = false;
} title = {
textStyle: {
// empty map fallback color: 'white',
if (channels.length === 0 && this.placeholder) { fontSize: 18
},
text: $localize`No data to display yet. Try again later.`,
left: 'center',
top: 'center'
};
this.zoom = 1.5;
this.center = [0, 20];
} else { // used for Node and Channel preview components
title = { title = {
textStyle: { textStyle: {
color: 'white', color: 'white',
@ -223,6 +231,7 @@ export class NodesChannelsMap implements OnInit {
this.zoom = 1.5; this.zoom = 1.5;
this.center = [0, 20]; this.center = [0, 20];
} }
}
this.chartOptions = { this.chartOptions = {
silent: this.style === 'widget', silent: this.style === 'widget',

View File

@ -38,7 +38,7 @@
</small> </small>
</div> </div>
<div [class]="!widget ? 'bottom-padding' : 'pb-0'" class="container pb-lg-0"> <div *ngIf="!indexingInProgress else indexing" [class]="!widget ? 'bottom-padding' : 'pb-0'" class="container pb-lg-0">
<div [class]="widget ? 'chart-widget' : 'chart'" echarts [initOpts]="chartInitOptions" [options]="chartOptions" <div [class]="widget ? 'chart-widget' : 'chart'" echarts [initOpts]="chartInitOptions" [options]="chartOptions"
(chartInit)="onChartInit($event)"> (chartInit)="onChartInit($event)">
</div> </div>
@ -99,3 +99,7 @@
</div> </div>
</div> </div>
</ng-template> </ng-template>
<ng-template #indexing>
<div class="indexing-message" i18n="lightning.indexing-in-progress">Indexing in progress</div>
</ng-template>

View File

@ -168,3 +168,13 @@
padding-right: 105px; padding-right: 105px;
} }
} }
.indexing-message {
font-size: 15px;
color: grey;
font-weight: bold;
width: 100%;
padding-top: 100px;
text-align: center;
height: 240px;
}

View File

@ -29,6 +29,7 @@ export class NodesPerISPChartComponent implements OnInit {
sortBy = 'capacity'; sortBy = 'capacity';
showUnknown = false; showUnknown = false;
chartInstance = undefined; chartInstance = undefined;
indexingInProgress = false;
@HostBinding('attr.dir') dir = 'ltr'; @HostBinding('attr.dir') dir = 'ltr';
@ -88,6 +89,8 @@ export class NodesPerISPChartComponent implements OnInit {
this.prepareChartOptions(data.ispRanking); this.prepareChartOptions(data.ispRanking);
this.indexingInProgress = !data.ispRanking.length;
return { return {
taggedISP: data.ispRanking.length, taggedISP: data.ispRanking.length,
clearnetCapacity: data.clearnetCapacity, clearnetCapacity: data.clearnetCapacity,

View File

@ -12,20 +12,22 @@ export class StorageService {
setDefaultValueIfNeeded(key: string, defaultValue: string) { setDefaultValueIfNeeded(key: string, defaultValue: string) {
const graphWindowPreference: string = this.getValue(key); const graphWindowPreference: string = this.getValue(key);
const fragment = window.location.hash.replace('#', '');
if (graphWindowPreference === null) { // First visit to mempool.space if (graphWindowPreference === null) { // First visit to mempool.space
if (this.router.url.includes('graphs') && key === 'graphWindowPreference' || if (window.location.pathname.includes('graphs') && key === 'graphWindowPreference' ||
this.router.url.includes('pools') && key === 'miningWindowPreference' window.location.pathname.includes('pools') && key === 'miningWindowPreference'
) { ) {
this.setValue(key, this.route.snapshot.fragment ? this.route.snapshot.fragment : defaultValue); this.setValue(key, fragment ? fragment : defaultValue);
} else { } else {
this.setValue(key, defaultValue); this.setValue(key, defaultValue);
} }
} else if (this.router.url.includes('graphs') && key === 'graphWindowPreference' || } else if (window.location.pathname.includes('graphs') && key === 'graphWindowPreference' ||
this.router.url.includes('pools') && key === 'miningWindowPreference' window.location.pathname.includes('pools') && key === 'miningWindowPreference'
) { ) {
// Visit a different graphs#fragment from last visit // Visit a different graphs#fragment from last visit
if (this.route.snapshot.fragment !== null && graphWindowPreference !== this.route.snapshot.fragment) { if (fragment !== null && graphWindowPreference !== fragment) {
this.setValue(key, this.route.snapshot.fragment); this.setValue(key, fragment);
} }
} }
} }

View File

@ -4,7 +4,7 @@ import { NgbCollapseModule, NgbTypeaheadModule } from '@ng-bootstrap/ng-bootstra
import { FontAwesomeModule, FaIconLibrary } from '@fortawesome/angular-fontawesome'; import { FontAwesomeModule, FaIconLibrary } from '@fortawesome/angular-fontawesome';
import { faFilter, faAngleDown, faAngleUp, faAngleRight, faAngleLeft, faBolt, faChartArea, faCogs, faCubes, faHammer, faDatabase, faExchangeAlt, faInfoCircle, import { faFilter, faAngleDown, faAngleUp, faAngleRight, faAngleLeft, faBolt, faChartArea, faCogs, faCubes, faHammer, faDatabase, faExchangeAlt, faInfoCircle,
faLink, faList, faSearch, faCaretUp, faCaretDown, faTachometerAlt, faThList, faTint, faTv, faAngleDoubleDown, faSortUp, faAngleDoubleUp, faChevronDown, faLink, faList, faSearch, faCaretUp, faCaretDown, faTachometerAlt, faThList, faTint, faTv, faAngleDoubleDown, faSortUp, faAngleDoubleUp, faChevronDown,
faFileAlt, faRedoAlt, faArrowAltCircleRight, faExternalLinkAlt, faBook, faListUl, faDownload, faQrcode, faArrowRightArrowLeft, faArrowsRotate, faCircleLeft } from '@fortawesome/free-solid-svg-icons'; faFileAlt, faRedoAlt, faArrowAltCircleRight, faExternalLinkAlt, faBook, faListUl, faDownload, faQrcode, faArrowRightArrowLeft, faArrowsRotate, faCircleLeft, faExclamationTriangle } from '@fortawesome/free-solid-svg-icons';
import { InfiniteScrollModule } from 'ngx-infinite-scroll'; import { InfiniteScrollModule } from 'ngx-infinite-scroll';
import { MasterPageComponent } from '../components/master-page/master-page.component'; import { MasterPageComponent } from '../components/master-page/master-page.component';
import { PreviewTitleComponent } from '../components/master-page-preview/preview-title.component'; import { PreviewTitleComponent } from '../components/master-page-preview/preview-title.component';
@ -309,5 +309,6 @@ export class SharedModule {
library.addIcons(faQrcode); library.addIcons(faQrcode);
library.addIcons(faArrowRightArrowLeft); library.addIcons(faArrowRightArrowLeft);
library.addIcons(faExchangeAlt); library.addIcons(faExchangeAlt);
library.addIcons(faExclamationTriangle);
} }
} }

View File

@ -3203,6 +3203,7 @@
</trans-unit> </trans-unit>
<trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html"> <trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> الكتل المتوقعة </target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">13</context> <context context-type="linenumber">13</context>
@ -3211,6 +3212,7 @@
</trans-unit> </trans-unit>
<trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html"> <trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/>الكتله المتوقعه </target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">14</context> <context context-type="linenumber">14</context>
@ -3219,6 +3221,7 @@
</trans-unit> </trans-unit>
<trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html"> <trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/>الكتل المعدنه </target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">18</context> <context context-type="linenumber">18</context>
@ -3227,6 +3230,7 @@
</trans-unit> </trans-unit>
<trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html"> <trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/>الكتله المعدنه</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">19</context> <context context-type="linenumber">19</context>
@ -3235,6 +3239,7 @@
</trans-unit> </trans-unit>
<trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html"> <trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/>الكتل المتبقية</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">24</context> <context context-type="linenumber">24</context>
@ -3243,6 +3248,7 @@
</trans-unit> </trans-unit>
<trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html"> <trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/>الكتلة المتبقية</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">25</context> <context context-type="linenumber">25</context>
@ -3251,6 +3257,7 @@
</trans-unit> </trans-unit>
<trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html"> <trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/>كتل قادمه</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">29</context> <context context-type="linenumber">29</context>
@ -3259,6 +3266,7 @@
</trans-unit> </trans-unit>
<trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html"> <trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/>كتله قادمه</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">30</context> <context context-type="linenumber">30</context>
@ -3267,6 +3275,7 @@
</trans-unit> </trans-unit>
<trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html"> <trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/>كتل وراء</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">34</context> <context context-type="linenumber">34</context>
@ -3275,6 +3284,7 @@
</trans-unit> </trans-unit>
<trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html"> <trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/>كتله وراء</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">35</context> <context context-type="linenumber">35</context>
@ -3283,6 +3293,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html"> <trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html">
<source>Average block time</source> <source>Average block time</source>
<target>متوسط وقت الكتل</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context>
<context context-type="linenumber">42,45</context> <context context-type="linenumber">42,45</context>
@ -3984,6 +3995,7 @@
</trans-unit> </trans-unit>
<trans-unit id="312539377512157124" datatype="html"> <trans-unit id="312539377512157124" datatype="html">
<source><x id="INTERPOLATION" equiv-text="i"/> blocks</source> <source><x id="INTERPOLATION" equiv-text="i"/> blocks</source>
<target><x id="INTERPOLATION" equiv-text="i"/>كتل</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">165,163</context> <context context-type="linenumber">165,163</context>
@ -4003,6 +4015,7 @@
</trans-unit> </trans-unit>
<trans-unit id="3666195172774554282" datatype="html"> <trans-unit id="3666195172774554282" datatype="html">
<source>Other (<x id="PH" equiv-text="percentage"/>)</source> <source>Other (<x id="PH" equiv-text="percentage"/>)</source>
<target>اخرى (<x id="PH" equiv-text="percentage"/>)</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">201</context> <context context-type="linenumber">201</context>
@ -4565,6 +4578,7 @@
</trans-unit> </trans-unit>
<trans-unit id="time-until" datatype="html"> <trans-unit id="time-until" datatype="html">
<source>In ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></source> <source>In ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></source>
<target>في ~ <x id="DATE" equiv-text="dateStrings.i18nYear"/></target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/time/time.component.ts</context> <context context-type="sourcefile">src/app/components/time/time.component.ts</context>
<context context-type="linenumber">126</context> <context context-type="linenumber">126</context>
@ -5348,6 +5362,7 @@
</trans-unit> </trans-unit>
<trans-unit id="8f2791f5d9656271dd6c385f5ad572716e90f4a2" datatype="html"> <trans-unit id="8f2791f5d9656271dd6c385f5ad572716e90f4a2" datatype="html">
<source><x id="START_BOLD_TEXT" ctype="x-b" equiv-text="mempool.space merely provides data about the Bitcoin network.&lt;/b&gt; It cannot help you with"/>mempool.space merely provides data about the Bitcoin network.<x id="CLOSE_BOLD_TEXT" ctype="x-b" equiv-text="&lt;/b&gt;"/> It cannot help you with retrieving funds, confirming your transaction quicker, etc.</source> <source><x id="START_BOLD_TEXT" ctype="x-b" equiv-text="mempool.space merely provides data about the Bitcoin network.&lt;/b&gt; It cannot help you with"/>mempool.space merely provides data about the Bitcoin network.<x id="CLOSE_BOLD_TEXT" ctype="x-b" equiv-text="&lt;/b&gt;"/> It cannot help you with retrieving funds, confirming your transaction quicker, etc.</source>
<target><x id="START_BOLD_TEXT" ctype="x-b" equiv-text="mempool.space merely provides data about the Bitcoin network.&lt;/b&gt; It cannot help you with"/>يوفر mempool.space بيانات حول شبكة البتكوين. <x id="CLOSE_BOLD_TEXT" ctype="x-b" equiv-text="&lt;/b&gt;"/> لا يمكننا مساعدتك في استرداد الأموال ، وتأكيد معاملتك بشكل أسرع ، وما إلى ذلك.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/docs/api-docs/api-docs.component.html</context> <context context-type="sourcefile">src/app/docs/api-docs/api-docs.component.html</context>
<context context-type="linenumber">13</context> <context context-type="linenumber">13</context>
@ -5873,6 +5888,7 @@
</trans-unit> </trans-unit>
<trans-unit id="96508700250272816" datatype="html"> <trans-unit id="96508700250272816" datatype="html">
<source>Force closed with penalty</source> <source>Force closed with penalty</source>
<target>أغلقت بالقوة هناك خطآ</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channel/closing-type/closing-type.component.ts</context> <context context-type="sourcefile">src/app/lightning/channel/closing-type/closing-type.component.ts</context>
<context context-type="linenumber">28</context> <context context-type="linenumber">28</context>
@ -6006,6 +6022,7 @@
</trans-unit> </trans-unit>
<trans-unit id="cfcc7201138b0ef9901e9604c35f550e91629295" datatype="html"> <trans-unit id="cfcc7201138b0ef9901e9604c35f550e91629295" datatype="html">
<source>avg</source> <source>avg</source>
<target>متوسط</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context> <context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
<context context-type="linenumber">3,5</context> <context context-type="linenumber">3,5</context>
@ -6014,6 +6031,7 @@
</trans-unit> </trans-unit>
<trans-unit id="ba9117dcc11814c44437cf9d7561874ba8b98a2a" datatype="html"> <trans-unit id="ba9117dcc11814c44437cf9d7561874ba8b98a2a" datatype="html">
<source>med</source> <source>med</source>
<target>متوسط</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context> <context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
<context context-type="linenumber">6,9</context> <context context-type="linenumber">6,9</context>
@ -6408,6 +6426,7 @@
</trans-unit> </trans-unit>
<trans-unit id="7254919336112973896" datatype="html"> <trans-unit id="7254919336112973896" datatype="html">
<source>Outgoing Fees</source> <source>Outgoing Fees</source>
<target>الرسوم الصادرة</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/node-fee-chart/node-fee-chart.component.ts</context> <context context-type="sourcefile">src/app/lightning/node-fee-chart/node-fee-chart.component.ts</context>
<context context-type="linenumber">170</context> <context context-type="linenumber">170</context>
@ -6419,6 +6438,7 @@
</trans-unit> </trans-unit>
<trans-unit id="484887099976974152" datatype="html"> <trans-unit id="484887099976974152" datatype="html">
<source>Incoming Fees</source> <source>Incoming Fees</source>
<target>رسوم واردة</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/node-fee-chart/node-fee-chart.component.ts</context> <context context-type="sourcefile">src/app/lightning/node-fee-chart/node-fee-chart.component.ts</context>
<context context-type="linenumber">178</context> <context context-type="linenumber">178</context>
@ -6706,6 +6726,7 @@
</trans-unit> </trans-unit>
<trans-unit id="599038141003770125" datatype="html"> <trans-unit id="599038141003770125" datatype="html">
<source>Clearnet and Darknet</source> <source>Clearnet and Darknet</source>
<target>كليرنت ودارك نت</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context> <context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context>
<context context-type="linenumber">164,161</context> <context context-type="linenumber">164,161</context>
@ -6717,6 +6738,7 @@
</trans-unit> </trans-unit>
<trans-unit id="1282458597026430784" datatype="html"> <trans-unit id="1282458597026430784" datatype="html">
<source>Clearnet Only (IPv4, IPv6)</source> <source>Clearnet Only (IPv4, IPv6)</source>
<target>كليرنت فقط (IPv4 ، IPv6)</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context> <context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context>
<context context-type="linenumber">185,182</context> <context context-type="linenumber">185,182</context>
@ -6728,6 +6750,7 @@
</trans-unit> </trans-unit>
<trans-unit id="2165336009914523952" datatype="html"> <trans-unit id="2165336009914523952" datatype="html">
<source>Darknet Only (Tor, I2P, cjdns)</source> <source>Darknet Only (Tor, I2P, cjdns)</source>
<target>الداركنت فقط (Tor، I2P، cjdns)</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context> <context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context>
<context context-type="linenumber">206,203</context> <context context-type="linenumber">206,203</context>
@ -6752,6 +6775,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5222540403093176126" datatype="html"> <trans-unit id="5222540403093176126" datatype="html">
<source><x id="PH" equiv-text="nodeCount"/> nodes</source> <source><x id="PH" equiv-text="nodeCount"/> nodes</source>
<target><x id="PH" equiv-text="nodeCount"/>العقد</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts</context> <context context-type="sourcefile">src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts</context>
<context context-type="linenumber">104,103</context> <context context-type="linenumber">104,103</context>

View File

@ -3235,6 +3235,7 @@
</trans-unit> </trans-unit>
<trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html"> <trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source>
<target>zbývá <x id="INTERPOLATION" equiv-text="{{ i }}"/> bloků</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">24</context> <context context-type="linenumber">24</context>
@ -3243,6 +3244,7 @@
</trans-unit> </trans-unit>
<trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html"> <trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source>
<target>zbývá <x id="INTERPOLATION" equiv-text="{{ i }}"/> blok</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">25</context> <context context-type="linenumber">25</context>
@ -3251,6 +3253,7 @@
</trans-unit> </trans-unit>
<trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html"> <trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source>
<target>za <x id="INTERPOLATION" equiv-text="{{ i }}"/> bloků</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">29</context> <context context-type="linenumber">29</context>
@ -3259,6 +3262,7 @@
</trans-unit> </trans-unit>
<trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html"> <trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source>
<target>za <x id="INTERPOLATION" equiv-text="{{ i }}"/> blok</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">30</context> <context context-type="linenumber">30</context>
@ -3267,6 +3271,7 @@
</trans-unit> </trans-unit>
<trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html"> <trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source>
<target>Před <x id="INTERPOLATION" equiv-text="{{ i }}"/> bloků</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">34</context> <context context-type="linenumber">34</context>
@ -3275,6 +3280,7 @@
</trans-unit> </trans-unit>
<trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html"> <trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source>
<target>Před <x id="INTERPOLATION" equiv-text="{{ i }}"/> blok</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">35</context> <context context-type="linenumber">35</context>
@ -3283,6 +3289,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html"> <trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html">
<source>Average block time</source> <source>Average block time</source>
<target>Průměrná perioda bloků</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context>
<context context-type="linenumber">42,45</context> <context context-type="linenumber">42,45</context>
@ -3984,6 +3991,7 @@
</trans-unit> </trans-unit>
<trans-unit id="312539377512157124" datatype="html"> <trans-unit id="312539377512157124" datatype="html">
<source><x id="INTERPOLATION" equiv-text="i"/> blocks</source> <source><x id="INTERPOLATION" equiv-text="i"/> blocks</source>
<target><x id="INTERPOLATION" equiv-text="i"/> bloků</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">165,163</context> <context context-type="linenumber">165,163</context>
@ -4505,7 +4513,7 @@
</trans-unit> </trans-unit>
<trans-unit id="time-since" datatype="html"> <trans-unit id="time-since" datatype="html">
<source><x id="DATE" equiv-text="dateStrings.i18nYear"/> ago</source> <source><x id="DATE" equiv-text="dateStrings.i18nYear"/> ago</source>
<target>před <x id="DATE" equiv-text="dateStrings.i18nYear"/></target> <target>Před <x id="DATE" equiv-text="dateStrings.i18nYear"/></target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/time/time.component.ts</context> <context context-type="sourcefile">src/app/components/time/time.component.ts</context>
<context context-type="linenumber">103</context> <context context-type="linenumber">103</context>
@ -7104,7 +7112,7 @@
</trans-unit> </trans-unit>
<trans-unit id="date-base.minute" datatype="html"> <trans-unit id="date-base.minute" datatype="html">
<source><x id="DATE" equiv-text="counter"/> minute</source> <source><x id="DATE" equiv-text="counter"/> minute</source>
<target><x id="DATE" equiv-text="counter"/> minuta</target> <target><x id="DATE" equiv-text="counter"/> min</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context> <context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
<context context-type="linenumber">13</context> <context context-type="linenumber">13</context>
@ -7112,7 +7120,7 @@
</trans-unit> </trans-unit>
<trans-unit id="date-base.minutes" datatype="html"> <trans-unit id="date-base.minutes" datatype="html">
<source><x id="DATE" equiv-text="counter"/> minutes</source> <source><x id="DATE" equiv-text="counter"/> minutes</source>
<target><x id="DATE" equiv-text="counter"/> minuty</target> <target><x id="DATE" equiv-text="counter"/> min</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context> <context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
<context context-type="linenumber">14</context> <context context-type="linenumber">14</context>

View File

@ -3203,6 +3203,7 @@
</trans-unit> </trans-unit>
<trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html"> <trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source>
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blokke forventes</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">13</context> <context context-type="linenumber">13</context>
@ -3211,6 +3212,7 @@
</trans-unit> </trans-unit>
<trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html"> <trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source>
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blok forventet</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">14</context> <context context-type="linenumber">14</context>
@ -3219,6 +3221,7 @@
</trans-unit> </trans-unit>
<trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html"> <trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source>
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blokke fundet</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">18</context> <context context-type="linenumber">18</context>
@ -3227,6 +3230,7 @@
</trans-unit> </trans-unit>
<trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html"> <trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source>
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blok fundet</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">19</context> <context context-type="linenumber">19</context>
@ -3235,6 +3239,7 @@
</trans-unit> </trans-unit>
<trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html"> <trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source>
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blokke tilbage</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">24</context> <context context-type="linenumber">24</context>
@ -3243,6 +3248,7 @@
</trans-unit> </trans-unit>
<trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html"> <trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source>
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blok tilbage</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">25</context> <context context-type="linenumber">25</context>
@ -3251,6 +3257,7 @@
</trans-unit> </trans-unit>
<trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html"> <trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source>
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blokke foran</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">29</context> <context context-type="linenumber">29</context>
@ -3259,6 +3266,7 @@
</trans-unit> </trans-unit>
<trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html"> <trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source>
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blok foran</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">30</context> <context context-type="linenumber">30</context>
@ -3267,6 +3275,7 @@
</trans-unit> </trans-unit>
<trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html"> <trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source>
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blokke bagved</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">34</context> <context context-type="linenumber">34</context>
@ -3275,6 +3284,7 @@
</trans-unit> </trans-unit>
<trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html"> <trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source>
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blok bagved</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">35</context> <context context-type="linenumber">35</context>
@ -3283,6 +3293,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html"> <trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html">
<source>Average block time</source> <source>Average block time</source>
<target>Gennemsnitlig bloktid</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context>
<context context-type="linenumber">42,45</context> <context context-type="linenumber">42,45</context>
@ -4004,6 +4015,7 @@
</trans-unit> </trans-unit>
<trans-unit id="3666195172774554282" datatype="html"> <trans-unit id="3666195172774554282" datatype="html">
<source>Other (<x id="PH" equiv-text="percentage"/>)</source> <source>Other (<x id="PH" equiv-text="percentage"/>)</source>
<target>Andet (<x id="PH" equiv-text="percentage"/>)</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">201</context> <context context-type="linenumber">201</context>

View File

@ -432,7 +432,7 @@
</trans-unit> </trans-unit>
<trans-unit id="07193288a0312875e18f38c3a2486b927a15520a" datatype="html"> <trans-unit id="07193288a0312875e18f38c3a2486b927a15520a" datatype="html">
<source>Timestamp</source> <source>Timestamp</source>
<target>Sello de tiempo</target> <target>Timestamp</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/bisq/bisq-block/bisq-block.component.html</context> <context context-type="sourcefile">src/app/bisq/bisq-block/bisq-block.component.html</context>
<context context-type="linenumber">23</context> <context context-type="linenumber">23</context>
@ -1440,7 +1440,7 @@
</trans-unit> </trans-unit>
<trans-unit id="4b137ec8bf73a47063740b75c0c40d5fd3c48015" datatype="html"> <trans-unit id="4b137ec8bf73a47063740b75c0c40d5fd3c48015" datatype="html">
<source>The Mempool Open Source Project</source> <source>The Mempool Open Source Project</source>
<target>Proyecto de Código Abierto The Mempool</target> <target>El proyecto de código abierto Mempool</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/about/about.component.html</context> <context context-type="sourcefile">src/app/components/about/about.component.html</context>
<context context-type="linenumber">12,13</context> <context context-type="linenumber">12,13</context>
@ -3355,7 +3355,7 @@
</trans-unit> </trans-unit>
<trans-unit id="ee847b69ef2dc81bb3e9b8cd30f02f8d63adbe07" datatype="html"> <trans-unit id="ee847b69ef2dc81bb3e9b8cd30f02f8d63adbe07" datatype="html">
<source>Medium Priority</source> <source>Medium Priority</source>
<target>Prioridad media</target> <target>Media prioridad</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/fees-box/fees-box.component.html</context> <context context-type="sourcefile">src/app/components/fees-box/fees-box.component.html</context>
<context context-type="linenumber">9,10</context> <context context-type="linenumber">9,10</context>

View File

@ -3203,6 +3203,7 @@
</trans-unit> </trans-unit>
<trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html"> <trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> lohkoa odotetaan</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">13</context> <context context-type="linenumber">13</context>
@ -3211,6 +3212,7 @@
</trans-unit> </trans-unit>
<trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html"> <trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> odotettu lohko</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">14</context> <context context-type="linenumber">14</context>
@ -3219,6 +3221,7 @@
</trans-unit> </trans-unit>
<trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html"> <trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> lohkoa louhittu</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">18</context> <context context-type="linenumber">18</context>
@ -3227,6 +3230,7 @@
</trans-unit> </trans-unit>
<trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html"> <trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> louhittu lohko </target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">19</context> <context context-type="linenumber">19</context>
@ -3235,6 +3239,7 @@
</trans-unit> </trans-unit>
<trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html"> <trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> lohkoa jäljellä</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">24</context> <context context-type="linenumber">24</context>
@ -3243,6 +3248,7 @@
</trans-unit> </trans-unit>
<trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html"> <trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> lohko jäljellä</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">25</context> <context context-type="linenumber">25</context>
@ -3251,6 +3257,7 @@
</trans-unit> </trans-unit>
<trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html"> <trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> lohkoa edellä</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">29</context> <context context-type="linenumber">29</context>
@ -3259,6 +3266,7 @@
</trans-unit> </trans-unit>
<trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html"> <trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> lohko edellä</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">30</context> <context context-type="linenumber">30</context>
@ -3267,6 +3275,7 @@
</trans-unit> </trans-unit>
<trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html"> <trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> lohkoa jäljessä</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">34</context> <context context-type="linenumber">34</context>
@ -3275,6 +3284,7 @@
</trans-unit> </trans-unit>
<trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html"> <trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> lohko jäljessä</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">35</context> <context context-type="linenumber">35</context>
@ -3283,6 +3293,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html"> <trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html">
<source>Average block time</source> <source>Average block time</source>
<target>Keskimääräinen lohkoaika</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context>
<context context-type="linenumber">42,45</context> <context context-type="linenumber">42,45</context>
@ -3984,6 +3995,7 @@
</trans-unit> </trans-unit>
<trans-unit id="312539377512157124" datatype="html"> <trans-unit id="312539377512157124" datatype="html">
<source><x id="INTERPOLATION" equiv-text="i"/> blocks</source> <source><x id="INTERPOLATION" equiv-text="i"/> blocks</source>
<target><x id="INTERPOLATION" equiv-text="i"/> lohkoa</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">165,163</context> <context context-type="linenumber">165,163</context>
@ -4003,6 +4015,7 @@
</trans-unit> </trans-unit>
<trans-unit id="3666195172774554282" datatype="html"> <trans-unit id="3666195172774554282" datatype="html">
<source>Other (<x id="PH" equiv-text="percentage"/>)</source> <source>Other (<x id="PH" equiv-text="percentage"/>)</source>
<target>Muut (<x id="PH" equiv-text="percentage"/>)</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">201</context> <context context-type="linenumber">201</context>
@ -4565,6 +4578,7 @@
</trans-unit> </trans-unit>
<trans-unit id="time-until" datatype="html"> <trans-unit id="time-until" datatype="html">
<source>In ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></source> <source>In ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></source>
<target>~<x id="DATE" equiv-text="dateStrings.i18nYear"/></target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/time/time.component.ts</context> <context context-type="sourcefile">src/app/components/time/time.component.ts</context>
<context context-type="linenumber">126</context> <context context-type="linenumber">126</context>
@ -6761,6 +6775,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5222540403093176126" datatype="html"> <trans-unit id="5222540403093176126" datatype="html">
<source><x id="PH" equiv-text="nodeCount"/> nodes</source> <source><x id="PH" equiv-text="nodeCount"/> nodes</source>
<target><x id="PH" equiv-text="nodeCount"/> solmua</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts</context> <context context-type="sourcefile">src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts</context>
<context context-type="linenumber">104,103</context> <context context-type="linenumber">104,103</context>

View File

@ -3203,6 +3203,7 @@
</trans-unit> </trans-unit>
<trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html"> <trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> בלוקים צפויים</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">13</context> <context context-type="linenumber">13</context>
@ -3211,6 +3212,7 @@
</trans-unit> </trans-unit>
<trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html"> <trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> בלוק צפוי</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">14</context> <context context-type="linenumber">14</context>
@ -3219,6 +3221,7 @@
</trans-unit> </trans-unit>
<trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html"> <trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> בלוקים נכרו</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">18</context> <context context-type="linenumber">18</context>
@ -3227,6 +3230,7 @@
</trans-unit> </trans-unit>
<trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html"> <trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> בלוק נכרה</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">19</context> <context context-type="linenumber">19</context>
@ -3235,6 +3239,7 @@
</trans-unit> </trans-unit>
<trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html"> <trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> בלוקים נותרו</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">24</context> <context context-type="linenumber">24</context>
@ -3243,6 +3248,7 @@
</trans-unit> </trans-unit>
<trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html"> <trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> בלוק נותר</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">25</context> <context context-type="linenumber">25</context>
@ -3251,6 +3257,7 @@
</trans-unit> </trans-unit>
<trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html"> <trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> בלוקים קדימה</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">29</context> <context context-type="linenumber">29</context>
@ -3259,6 +3266,7 @@
</trans-unit> </trans-unit>
<trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html"> <trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> בלוק קדימה</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">30</context> <context context-type="linenumber">30</context>
@ -3267,6 +3275,7 @@
</trans-unit> </trans-unit>
<trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html"> <trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> בלוקים מאחור</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">34</context> <context context-type="linenumber">34</context>
@ -3275,6 +3284,7 @@
</trans-unit> </trans-unit>
<trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html"> <trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> בלוק מאחור</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">35</context> <context context-type="linenumber">35</context>
@ -3283,6 +3293,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html"> <trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html">
<source>Average block time</source> <source>Average block time</source>
<target>זמן בלוק ממוצע</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context>
<context context-type="linenumber">42,45</context> <context context-type="linenumber">42,45</context>
@ -3538,7 +3549,7 @@
</trans-unit> </trans-unit>
<trans-unit id="8573a1576789bd2c4faeaed23037c4917812c6cf" datatype="html"> <trans-unit id="8573a1576789bd2c4faeaed23037c4917812c6cf" datatype="html">
<source>Lightning Nodes Per ISP</source> <source>Lightning Nodes Per ISP</source>
<target>צמתי ברק לפי ספקי תשתית</target> <target>צמתי ברק לפי ספקיות</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/graphs/graphs.component.html</context> <context context-type="sourcefile">src/app/components/graphs/graphs.component.html</context>
<context context-type="linenumber">37</context> <context context-type="linenumber">37</context>
@ -3706,6 +3717,7 @@
</trans-unit> </trans-unit>
<trans-unit id="142e923d3b04186ac6ba23387265d22a2fa404e0" datatype="html"> <trans-unit id="142e923d3b04186ac6ba23387265d22a2fa404e0" datatype="html">
<source>Lightning Explorer</source> <source>Lightning Explorer</source>
<target>חוקר רשת הברק</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/master-page/master-page.component.html</context> <context context-type="sourcefile">src/app/components/master-page/master-page.component.html</context>
<context context-type="linenumber">44,47</context> <context context-type="linenumber">44,47</context>
@ -3874,6 +3886,7 @@
</trans-unit> </trans-unit>
<trans-unit id="500e13dffc7300bf7e4822a6bbf29a71a55d7b75" datatype="html"> <trans-unit id="500e13dffc7300bf7e4822a6bbf29a71a55d7b75" datatype="html">
<source>How many unique pools found at least one block over the past week.</source> <source>How many unique pools found at least one block over the past week.</source>
<target>כמות בריכות הכרייה אשר מצאו לפחות בלוק אחד בשבוע החולף.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context>
<context context-type="linenumber">19,23</context> <context context-type="linenumber">19,23</context>
@ -3982,6 +3995,7 @@
</trans-unit> </trans-unit>
<trans-unit id="312539377512157124" datatype="html"> <trans-unit id="312539377512157124" datatype="html">
<source><x id="INTERPOLATION" equiv-text="i"/> blocks</source> <source><x id="INTERPOLATION" equiv-text="i"/> blocks</source>
<target><x id="INTERPOLATION" equiv-text="i"/> בלוקים</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">165,163</context> <context context-type="linenumber">165,163</context>
@ -4001,6 +4015,7 @@
</trans-unit> </trans-unit>
<trans-unit id="3666195172774554282" datatype="html"> <trans-unit id="3666195172774554282" datatype="html">
<source>Other (<x id="PH" equiv-text="percentage"/>)</source> <source>Other (<x id="PH" equiv-text="percentage"/>)</source>
<target>אחר (<x id="PH" equiv-text="percentage"/>)</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">201</context> <context context-type="linenumber">201</context>
@ -4356,6 +4371,7 @@
</trans-unit> </trans-unit>
<trans-unit id="7deec1c1520f06170e1f8e8ddfbe4532312f638f" datatype="html"> <trans-unit id="7deec1c1520f06170e1f8e8ddfbe4532312f638f" datatype="html">
<source>Explore the full Bitcoin ecosystem</source> <source>Explore the full Bitcoin ecosystem</source>
<target>חקור את מרחב רשתות הביטקוין</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/search-form/search-form.component.html</context> <context context-type="sourcefile">src/app/components/search-form/search-form.component.html</context>
<context context-type="linenumber">4,5</context> <context context-type="linenumber">4,5</context>
@ -4562,6 +4578,7 @@
</trans-unit> </trans-unit>
<trans-unit id="time-until" datatype="html"> <trans-unit id="time-until" datatype="html">
<source>In ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></source> <source>In ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></source>
<target>תוך <x id="DATE" equiv-text="dateStrings.i18nYear"/>~</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/time/time.component.ts</context> <context context-type="sourcefile">src/app/components/time/time.component.ts</context>
<context context-type="linenumber">126</context> <context context-type="linenumber">126</context>
@ -5345,6 +5362,7 @@
</trans-unit> </trans-unit>
<trans-unit id="8f2791f5d9656271dd6c385f5ad572716e90f4a2" datatype="html"> <trans-unit id="8f2791f5d9656271dd6c385f5ad572716e90f4a2" datatype="html">
<source><x id="START_BOLD_TEXT" ctype="x-b" equiv-text="mempool.space merely provides data about the Bitcoin network.&lt;/b&gt; It cannot help you with"/>mempool.space merely provides data about the Bitcoin network.<x id="CLOSE_BOLD_TEXT" ctype="x-b" equiv-text="&lt;/b&gt;"/> It cannot help you with retrieving funds, confirming your transaction quicker, etc.</source> <source><x id="START_BOLD_TEXT" ctype="x-b" equiv-text="mempool.space merely provides data about the Bitcoin network.&lt;/b&gt; It cannot help you with"/>mempool.space merely provides data about the Bitcoin network.<x id="CLOSE_BOLD_TEXT" ctype="x-b" equiv-text="&lt;/b&gt;"/> It cannot help you with retrieving funds, confirming your transaction quicker, etc.</source>
<target><x id="START_BOLD_TEXT" ctype="x-b" equiv-text="mempool.space merely provides data about the Bitcoin network.&lt;/b&gt; It cannot help you with"/>mempool.space מספק נתונים מרשת הביטקוין בלבד. <x id="CLOSE_BOLD_TEXT" ctype="x-b" equiv-text="&lt;/b&gt;"/> אין אפשרות לסייע באיחזור נכסים, אישור מהיר יותר של טרנזקציות וכו'.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/docs/api-docs/api-docs.component.html</context> <context context-type="sourcefile">src/app/docs/api-docs/api-docs.component.html</context>
<context context-type="linenumber">13</context> <context context-type="linenumber">13</context>
@ -5357,6 +5375,7 @@
</trans-unit> </trans-unit>
<trans-unit id="cd2330c7e9c74256f6a91e83bccf10e2905f8556" datatype="html"> <trans-unit id="cd2330c7e9c74256f6a91e83bccf10e2905f8556" datatype="html">
<source>REST API service</source> <source>REST API service</source>
<target>שירותי API</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/docs/api-docs/api-docs.component.html</context> <context context-type="sourcefile">src/app/docs/api-docs/api-docs.component.html</context>
<context context-type="linenumber">42,43</context> <context context-type="linenumber">42,43</context>
@ -5475,6 +5494,7 @@
</trans-unit> </trans-unit>
<trans-unit id="6acd06bd5a3af583cd46c6d9f7954d7a2b44095e" datatype="html"> <trans-unit id="6acd06bd5a3af583cd46c6d9f7954d7a2b44095e" datatype="html">
<source>mSats</source> <source>mSats</source>
<target>מיליסאטס</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context> <context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context>
<context context-type="linenumber">35</context> <context context-type="linenumber">35</context>
@ -5495,6 +5515,7 @@
</trans-unit> </trans-unit>
<trans-unit id="fb2137ba0df55f21a9d6b6ad08d56d74ad852e0e" datatype="html"> <trans-unit id="fb2137ba0df55f21a9d6b6ad08d56d74ad852e0e" datatype="html">
<source>This channel supports zero base fee routing</source> <source>This channel supports zero base fee routing</source>
<target>ערוץ זה תומך בניתוב עמלות בסיס אפס</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context> <context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context>
<context context-type="linenumber">44</context> <context context-type="linenumber">44</context>
@ -5503,6 +5524,7 @@
</trans-unit> </trans-unit>
<trans-unit id="3ec76ccfe1fdcbfd7ea152392f6472d93d4e8cab" datatype="html"> <trans-unit id="3ec76ccfe1fdcbfd7ea152392f6472d93d4e8cab" datatype="html">
<source>Zero base fee</source> <source>Zero base fee</source>
<target>עמלות בסיס אפס</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context> <context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context>
<context context-type="linenumber">45</context> <context context-type="linenumber">45</context>
@ -5511,6 +5533,7 @@
</trans-unit> </trans-unit>
<trans-unit id="b5e42e06ea8a4012a38eef209104bbd9dd1a0fc0" datatype="html"> <trans-unit id="b5e42e06ea8a4012a38eef209104bbd9dd1a0fc0" datatype="html">
<source>This channel does not support zero base fee routing</source> <source>This channel does not support zero base fee routing</source>
<target>ערוץ זה אינו תומך בניתוב עמלות בסיס אפס</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context> <context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context>
<context context-type="linenumber">50</context> <context context-type="linenumber">50</context>
@ -5519,6 +5542,7 @@
</trans-unit> </trans-unit>
<trans-unit id="09a1bc9c4198e87e9e974a51e86b181429b480d3" datatype="html"> <trans-unit id="09a1bc9c4198e87e9e974a51e86b181429b480d3" datatype="html">
<source>Non-zero base fee</source> <source>Non-zero base fee</source>
<target>לא עמלות בסיס אפס</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context> <context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context>
<context context-type="linenumber">51</context> <context context-type="linenumber">51</context>
@ -5527,6 +5551,7 @@
</trans-unit> </trans-unit>
<trans-unit id="055060668d0b9902c37abfb6168a08a36eba4496" datatype="html"> <trans-unit id="055060668d0b9902c37abfb6168a08a36eba4496" datatype="html">
<source>Min HTLC</source> <source>Min HTLC</source>
<target>HTLC מינימלי</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context> <context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context>
<context context-type="linenumber">57</context> <context context-type="linenumber">57</context>
@ -5535,6 +5560,7 @@
</trans-unit> </trans-unit>
<trans-unit id="c3d94c1a5aef6211f4a902027bd08540d7222b0d" datatype="html"> <trans-unit id="c3d94c1a5aef6211f4a902027bd08540d7222b0d" datatype="html">
<source>Max HTLC</source> <source>Max HTLC</source>
<target>HTLC מקסימלי</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context> <context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context>
<context context-type="linenumber">63</context> <context context-type="linenumber">63</context>
@ -5543,6 +5569,7 @@
</trans-unit> </trans-unit>
<trans-unit id="9fe79011b50c2ca1f9b7db7066046631bfc6b3cb" datatype="html"> <trans-unit id="9fe79011b50c2ca1f9b7db7066046631bfc6b3cb" datatype="html">
<source>Timelock delta</source> <source>Timelock delta</source>
<target>מרווח נעילת-זמן</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context> <context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context>
<context context-type="linenumber">69</context> <context context-type="linenumber">69</context>
@ -5730,6 +5757,7 @@
</trans-unit> </trans-unit>
<trans-unit id="8fd0077b032e360ece45c4fd655f85b2400dcb83" datatype="html"> <trans-unit id="8fd0077b032e360ece45c4fd655f85b2400dcb83" datatype="html">
<source>ppm</source> <source>ppm</source>
<target>פפ&quot;מ</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channel/channel-preview.component.html</context> <context context-type="sourcefile">src/app/lightning/channel/channel-preview.component.html</context>
<context context-type="linenumber">34,35</context> <context context-type="linenumber">34,35</context>
@ -6038,6 +6066,7 @@
</trans-unit> </trans-unit>
<trans-unit id="db1f0c0605ab0c4a904523635982253ff72eed40" datatype="html"> <trans-unit id="db1f0c0605ab0c4a904523635982253ff72eed40" datatype="html">
<source>The average fee rate charged by routing nodes, ignoring fee rates &gt; 0.5% or 5000ppm</source> <source>The average fee rate charged by routing nodes, ignoring fee rates &gt; 0.5% or 5000ppm</source>
<target>ממוצע העמלות שנגבה בידי צמתי ניתוב, בהתעלמות מתעריף העמלה &gt; 0.5% או 5000 פפ&quot;מ</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context> <context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
<context context-type="linenumber">28,30</context> <context context-type="linenumber">28,30</context>
@ -6059,6 +6088,7 @@
</trans-unit> </trans-unit>
<trans-unit id="0a46218f4a7b17b6445460898d75ab78e7e7979b" datatype="html"> <trans-unit id="0a46218f4a7b17b6445460898d75ab78e7e7979b" datatype="html">
<source>The average base fee charged by routing nodes, ignoring base fees &gt; 5000ppm</source> <source>The average base fee charged by routing nodes, ignoring base fees &gt; 5000ppm</source>
<target>ממוצע העמלות שנגבה בידי צמתי ניתוב, בהתעלמות מתעריף העמלה &gt; 5000 פפ&quot;מ</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context> <context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
<context context-type="linenumber">43,45</context> <context context-type="linenumber">43,45</context>
@ -6085,6 +6115,7 @@
</trans-unit> </trans-unit>
<trans-unit id="cb4dae32e1b4d6a2ba6287d9f7bd859ca7259468" datatype="html"> <trans-unit id="cb4dae32e1b4d6a2ba6287d9f7bd859ca7259468" datatype="html">
<source>The median fee rate charged by routing nodes, ignoring fee rates &gt; 0.5% or 5000ppm</source> <source>The median fee rate charged by routing nodes, ignoring fee rates &gt; 0.5% or 5000ppm</source>
<target>חציון העמלות שנגבה בידי צמתי ניתוב, בהתעלמות תעריף העמלה &gt; 0.5% או 5000 פפ&quot;מ</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context> <context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
<context context-type="linenumber">74,76</context> <context context-type="linenumber">74,76</context>
@ -6102,6 +6133,7 @@
</trans-unit> </trans-unit>
<trans-unit id="b8539025268617abfcab1c3f2a2c60cd8d7485fb" datatype="html"> <trans-unit id="b8539025268617abfcab1c3f2a2c60cd8d7485fb" datatype="html">
<source>The median base fee charged by routing nodes, ignoring base fees &gt; 5000ppm</source> <source>The median base fee charged by routing nodes, ignoring base fees &gt; 5000ppm</source>
<target>חציון העמלות שנגבה על ידי צמתי ניתוב, בהתעלמות מבסיס העמלה &gt; 5000 פפ&quot;מ</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context> <context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
<context context-type="linenumber">89,91</context> <context context-type="linenumber">89,91</context>
@ -6347,6 +6379,7 @@
</trans-unit> </trans-unit>
<trans-unit id="2d9883d230a47fbbb2ec969e32a186597ea27405" datatype="html"> <trans-unit id="2d9883d230a47fbbb2ec969e32a186597ea27405" datatype="html">
<source>Liquidity Ranking</source> <source>Liquidity Ranking</source>
<target>דירוג נזילות</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/lightning-dashboard/lightning-dashboard.component.html</context> <context context-type="sourcefile">src/app/lightning/lightning-dashboard/lightning-dashboard.component.html</context>
<context context-type="linenumber">62</context> <context context-type="linenumber">62</context>
@ -6371,6 +6404,7 @@
</trans-unit> </trans-unit>
<trans-unit id="c50bf442cf99f6fc5f8b687c460f33234b879869" datatype="html"> <trans-unit id="c50bf442cf99f6fc5f8b687c460f33234b879869" datatype="html">
<source>Connectivity Ranking</source> <source>Connectivity Ranking</source>
<target>דירוג חיבוריות</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/lightning-dashboard/lightning-dashboard.component.html</context> <context context-type="sourcefile">src/app/lightning/lightning-dashboard/lightning-dashboard.component.html</context>
<context context-type="linenumber">76</context> <context context-type="linenumber">76</context>
@ -6512,7 +6546,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5b9904cb31f6f28314443f6385dc5facab7ea851" datatype="html"> <trans-unit id="5b9904cb31f6f28314443f6385dc5facab7ea851" datatype="html">
<source>ISP</source> <source>ISP</source>
<target>ספק אינטרנט</target> <target>רשת גלויה</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context> <context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
<context context-type="linenumber">89,90</context> <context context-type="linenumber">89,90</context>
@ -6534,6 +6568,7 @@
</trans-unit> </trans-unit>
<trans-unit id="e128630e07a4c467f51b246a31c5734d5fb1a2c2" datatype="html"> <trans-unit id="e128630e07a4c467f51b246a31c5734d5fb1a2c2" datatype="html">
<source>Liquidity ad</source> <source>Liquidity ad</source>
<target>פרסומת ליקווידיטי</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context> <context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
<context context-type="linenumber">141,144</context> <context context-type="linenumber">141,144</context>
@ -6542,6 +6577,7 @@
</trans-unit> </trans-unit>
<trans-unit id="bc84b5a9a70217104a53c7139e30b392be6520b7" datatype="html"> <trans-unit id="bc84b5a9a70217104a53c7139e30b392be6520b7" datatype="html">
<source>Lease fee rate</source> <source>Lease fee rate</source>
<target>שיעור עמלת שכירות</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context> <context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
<context context-type="linenumber">147,150</context> <context context-type="linenumber">147,150</context>
@ -6551,6 +6587,7 @@
</trans-unit> </trans-unit>
<trans-unit id="ee807dd54b4a45eeba284744c64774de1ab5e4f1" datatype="html"> <trans-unit id="ee807dd54b4a45eeba284744c64774de1ab5e4f1" datatype="html">
<source>Lease base fee</source> <source>Lease base fee</source>
<target>עמלת בסיס לשכירות</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context> <context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
<context context-type="linenumber">155,157</context> <context context-type="linenumber">155,157</context>
@ -6559,6 +6596,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5e348f3d51c3bb283c16572bee1e293ea991cf49" datatype="html"> <trans-unit id="5e348f3d51c3bb283c16572bee1e293ea991cf49" datatype="html">
<source>Funding weight</source> <source>Funding weight</source>
<target>משקל מימון</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context> <context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
<context context-type="linenumber">161,162</context> <context context-type="linenumber">161,162</context>
@ -6586,6 +6624,7 @@
</trans-unit> </trans-unit>
<trans-unit id="e8e09fa12864e94f094a2a7c8c97cfdf0cff8aab" datatype="html"> <trans-unit id="e8e09fa12864e94f094a2a7c8c97cfdf0cff8aab" datatype="html">
<source>Compact lease</source> <source>Compact lease</source>
<target>שכירות קומפקטית</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context> <context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
<context context-type="linenumber">191,193</context> <context context-type="linenumber">191,193</context>
@ -6594,6 +6633,7 @@
</trans-unit> </trans-unit>
<trans-unit id="aa687f4987e2d4e0010be692d402174962ece70e" datatype="html"> <trans-unit id="aa687f4987e2d4e0010be692d402174962ece70e" datatype="html">
<source>TLV extension records</source> <source>TLV extension records</source>
<target>תיעוד TLV מורחב</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context> <context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
<context context-type="linenumber">202,205</context> <context context-type="linenumber">202,205</context>
@ -6628,6 +6668,7 @@
</trans-unit> </trans-unit>
<trans-unit id="7cac1c3013423d82d5149a5854d709bd08411430" datatype="html"> <trans-unit id="7cac1c3013423d82d5149a5854d709bd08411430" datatype="html">
<source>(Tor nodes excluded)</source> <source>(Tor nodes excluded)</source>
<target>(ללא צמתי תור)</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-channels-map/nodes-channels-map.component.html</context> <context context-type="sourcefile">src/app/lightning/nodes-channels-map/nodes-channels-map.component.html</context>
<context context-type="linenumber">8,11</context> <context context-type="linenumber">8,11</context>
@ -6648,6 +6689,7 @@
</trans-unit> </trans-unit>
<trans-unit id="8199511328474154549" datatype="html"> <trans-unit id="8199511328474154549" datatype="html">
<source>Lightning Nodes Channels World Map</source> <source>Lightning Nodes Channels World Map</source>
<target>מפת ערוצי רשת הברק העולמית</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts</context> <context context-type="sourcefile">src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts</context>
<context context-type="linenumber">69</context> <context context-type="linenumber">69</context>
@ -6655,6 +6697,7 @@
</trans-unit> </trans-unit>
<trans-unit id="4390631969351833104" datatype="html"> <trans-unit id="4390631969351833104" datatype="html">
<source>No geolocation data available</source> <source>No geolocation data available</source>
<target>מידע גיאולוקאלי אינו זמין</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts</context> <context context-type="sourcefile">src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts</context>
<context context-type="linenumber">219,214</context> <context context-type="linenumber">219,214</context>
@ -6732,6 +6775,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5222540403093176126" datatype="html"> <trans-unit id="5222540403093176126" datatype="html">
<source><x id="PH" equiv-text="nodeCount"/> nodes</source> <source><x id="PH" equiv-text="nodeCount"/> nodes</source>
<target><x id="PH" equiv-text="nodeCount"/> צמתים</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts</context> <context context-type="sourcefile">src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts</context>
<context context-type="linenumber">104,103</context> <context context-type="linenumber">104,103</context>
@ -6768,6 +6812,7 @@
</trans-unit> </trans-unit>
<trans-unit id="4498ec29c37744fef46809ebc3db67c5fb789917" datatype="html"> <trans-unit id="4498ec29c37744fef46809ebc3db67c5fb789917" datatype="html">
<source>ISP Count</source> <source>ISP Count</source>
<target>כמות ספקיות</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-country/nodes-per-country.component.html</context> <context context-type="sourcefile">src/app/lightning/nodes-per-country/nodes-per-country.component.html</context>
<context context-type="linenumber">34,38</context> <context context-type="linenumber">34,38</context>
@ -6776,6 +6821,7 @@
</trans-unit> </trans-unit>
<trans-unit id="90a6a964ba53464578003e3b4b2873ef5d2132a1" datatype="html"> <trans-unit id="90a6a964ba53464578003e3b4b2873ef5d2132a1" datatype="html">
<source>Top ISP</source> <source>Top ISP</source>
<target>ספקיות מובילות</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-country/nodes-per-country.component.html</context> <context context-type="sourcefile">src/app/lightning/nodes-per-country/nodes-per-country.component.html</context>
<context context-type="linenumber">38,40</context> <context context-type="linenumber">38,40</context>
@ -6805,6 +6851,7 @@
</trans-unit> </trans-unit>
<trans-unit id="ccabb31683868066778a1d664aa53ee9fcf77d6b" datatype="html"> <trans-unit id="ccabb31683868066778a1d664aa53ee9fcf77d6b" datatype="html">
<source>How much liquidity is running on nodes advertising at least one clearnet IP address</source> <source>How much liquidity is running on nodes advertising at least one clearnet IP address</source>
<target>כמה ליקווידיטי רץ על צמתים המפרסמים לפחות כתובת IP גלויה אחת</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html</context> <context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html</context>
<context context-type="linenumber">8,9</context> <context context-type="linenumber">8,9</context>
@ -6826,6 +6873,7 @@
</trans-unit> </trans-unit>
<trans-unit id="26fb07e8754b87bba4bf12c5137ffa77dac389a8" datatype="html"> <trans-unit id="26fb07e8754b87bba4bf12c5137ffa77dac389a8" datatype="html">
<source>How much liquidity is running on nodes which ISP was not identifiable</source> <source>How much liquidity is running on nodes which ISP was not identifiable</source>
<target>כמה ליקווידיטי רץ על צמתים ללא ספקית רשת מזוהה</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html</context> <context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html</context>
<context context-type="linenumber">15,16</context> <context context-type="linenumber">15,16</context>
@ -6847,6 +6895,7 @@
</trans-unit> </trans-unit>
<trans-unit id="23549ef4e1f846f06abcf07ceecb115945a0cf61" datatype="html"> <trans-unit id="23549ef4e1f846f06abcf07ceecb115945a0cf61" datatype="html">
<source>How much liquidity is running on nodes advertising only Tor addresses</source> <source>How much liquidity is running on nodes advertising only Tor addresses</source>
<target>כמה ליקווידיטי רץ על צמתים המפרסמים כתובות תור בלבד</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html</context> <context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html</context>
<context context-type="linenumber">22,23</context> <context context-type="linenumber">22,23</context>
@ -6855,6 +6904,7 @@
</trans-unit> </trans-unit>
<trans-unit id="e008f2a76179fdcd7110b41ca624131f91075949" datatype="html"> <trans-unit id="e008f2a76179fdcd7110b41ca624131f91075949" datatype="html">
<source>Top 100 ISPs hosting LN nodes</source> <source>Top 100 ISPs hosting LN nodes</source>
<target>100 הספקיות המובילות באיחסון צמתי רשת הברק</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html</context> <context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html</context>
<context context-type="linenumber">31,33</context> <context context-type="linenumber">31,33</context>
@ -6875,6 +6925,7 @@
</trans-unit> </trans-unit>
<trans-unit id="c18497e4f0db0d0ad0c71ba294295f42b3d312c9" datatype="html"> <trans-unit id="c18497e4f0db0d0ad0c71ba294295f42b3d312c9" datatype="html">
<source>Lightning ISP</source> <source>Lightning ISP</source>
<target>ספקיות ברק</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html</context> <context context-type="sourcefile">src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html</context>
<context context-type="linenumber">3,5</context> <context context-type="linenumber">3,5</context>
@ -6905,6 +6956,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5735693498020397727" datatype="html"> <trans-unit id="5735693498020397727" datatype="html">
<source>Lightning nodes on ISP: <x id="PH" equiv-text="response.isp"/> [AS<x id="PH_1" equiv-text="this.route.snapshot.params.isp"/>]</source> <source>Lightning nodes on ISP: <x id="PH" equiv-text="response.isp"/> [AS<x id="PH_1" equiv-text="this.route.snapshot.params.isp"/>]</source>
<target>צמתי ברק אצל ספקיות: <x id="PH" equiv-text="response.isp"/> [כ <x id="PH_1" equiv-text="this.route.snapshot.params.isp"/>]</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.ts</context> <context context-type="sourcefile">src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.ts</context>
<context context-type="linenumber">44</context> <context context-type="linenumber">44</context>
@ -6916,6 +6968,7 @@
</trans-unit> </trans-unit>
<trans-unit id="d82f436f033a7d81680b8430275f94dda530151c" datatype="html"> <trans-unit id="d82f436f033a7d81680b8430275f94dda530151c" datatype="html">
<source>Lightning nodes on ISP: <x id="INTERPOLATION" equiv-text="{{ isp?.name }}"/></source> <source>Lightning nodes on ISP: <x id="INTERPOLATION" equiv-text="{{ isp?.name }}"/></source>
<target>צמתי ברק ברשת הגלויה: <x id="INTERPOLATION" equiv-text="{{ isp?.name }}"/></target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-isp/nodes-per-isp.component.html</context> <context context-type="sourcefile">src/app/lightning/nodes-per-isp/nodes-per-isp.component.html</context>
<context context-type="linenumber">2,4</context> <context context-type="linenumber">2,4</context>
@ -6924,6 +6977,7 @@
</trans-unit> </trans-unit>
<trans-unit id="ca0b795795658155d44ddca02e95f1feeeb4a88f" datatype="html"> <trans-unit id="ca0b795795658155d44ddca02e95f1feeeb4a88f" datatype="html">
<source>ASN</source> <source>ASN</source>
<target>ASN</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-isp/nodes-per-isp.component.html</context> <context context-type="sourcefile">src/app/lightning/nodes-per-isp/nodes-per-isp.component.html</context>
<context context-type="linenumber">11,14</context> <context context-type="linenumber">11,14</context>

View File

@ -1449,6 +1449,7 @@
</trans-unit> </trans-unit>
<trans-unit id="8a4411dcb4da0aa489ec367bf2a3ec289e07a86e" datatype="html"> <trans-unit id="8a4411dcb4da0aa489ec367bf2a3ec289e07a86e" datatype="html">
<source>Our mempool and blockchain explorer for the Bitcoin community, focusing on the transaction fee market and multi-layer ecosystem, completely self-hosted without any trusted third-parties.</source> <source>Our mempool and blockchain explorer for the Bitcoin community, focusing on the transaction fee market and multi-layer ecosystem, completely self-hosted without any trusted third-parties.</source>
<target>Mempoolunk és blokklánc-felfedezőnk a Bitcoin közösség számára, a tranzakciós díjak piacára és a többrétegű ökoszisztémára összpontosítva, teljesen önállóan, megbízható harmadik felek nélkül.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/about/about.component.html</context> <context context-type="sourcefile">src/app/components/about/about.component.html</context>
<context context-type="linenumber">13,16</context> <context context-type="linenumber">13,16</context>
@ -1649,6 +1650,7 @@
</trans-unit> </trans-unit>
<trans-unit id="49cef95661d86f4341788ce40068d58801adc6e6" datatype="html"> <trans-unit id="49cef95661d86f4341788ce40068d58801adc6e6" datatype="html">
<source><x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="&lt;i&gt;"/>There many transactions on this address, more than your backend can handle. See more on <x id="START_LINK" ctype="x-a" equiv-text="&lt;a href=&quot;/docs/faq#address-lookup-issues&quot;&gt;"/>setting up a stronger backend<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/>.<x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="&lt;/i&gt;"/><x id="LINE_BREAK" ctype="lb" equiv-text="&lt;br&gt;"/><x id="LINE_BREAK" ctype="lb" equiv-text="&lt;br&gt;"/> Consider viewing this address on the official Mempool website instead: </source> <source><x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="&lt;i&gt;"/>There many transactions on this address, more than your backend can handle. See more on <x id="START_LINK" ctype="x-a" equiv-text="&lt;a href=&quot;/docs/faq#address-lookup-issues&quot;&gt;"/>setting up a stronger backend<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/>.<x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="&lt;/i&gt;"/><x id="LINE_BREAK" ctype="lb" equiv-text="&lt;br&gt;"/><x id="LINE_BREAK" ctype="lb" equiv-text="&lt;br&gt;"/> Consider viewing this address on the official Mempool website instead: </source>
<target><x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="&lt;i&gt;"/>Sok tranzakció van ezen a címen, többet, mint amennyit a háttérrendszere képes kezelni. További információ<x id="START_LINK" ctype="x-a" equiv-text="&lt;a href=&quot;/docs/faq#address-lookup-issues&quot;&gt;"/> az erősebb háttérrendszer beállításáról<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/>. <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="&lt;/i&gt;"/><x id="LINE_BREAK" ctype="lb" equiv-text="&lt;br&gt;"/><x id="LINE_BREAK" ctype="lb" equiv-text="&lt;br&gt;"/>Fontolja meg ennek a címnek a megtekintését a hivatalos Mempool webhelyen:</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/address/address.component.html</context> <context context-type="sourcefile">src/app/components/address/address.component.html</context>
<context context-type="linenumber">134,137</context> <context context-type="linenumber">134,137</context>
@ -3111,6 +3113,7 @@
</trans-unit> </trans-unit>
<trans-unit id="1bb6965f8e1bbe40c076528ffd841da86f57f119" datatype="html"> <trans-unit id="1bb6965f8e1bbe40c076528ffd841da86f57f119" datatype="html">
<source><x id="INTERPOLATION" equiv-text="&lt;span class=&quot;shared-block&quot;&gt;blocks&lt;/span&gt;&lt;/ng-template&gt; &lt;ng-template"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span class=&quot;shared-block&quot;&gt;"/>blocks<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/></source> <source><x id="INTERPOLATION" equiv-text="&lt;span class=&quot;shared-block&quot;&gt;blocks&lt;/span&gt;&lt;/ng-template&gt; &lt;ng-template"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span class=&quot;shared-block&quot;&gt;"/>blocks<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/></source>
<target><x id="INTERPOLATION" equiv-text="&lt;span class=&quot;shared-block&quot;&gt;blocks&lt;/span&gt;&lt;/ng-template&gt; &lt;ng-template"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span class=&quot;shared-block&quot;&gt;"/> blokkok <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/></target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty-mining/difficulty-mining.component.html</context> <context context-type="sourcefile">src/app/components/difficulty-mining/difficulty-mining.component.html</context>
<context context-type="linenumber">10,11</context> <context context-type="linenumber">10,11</context>
@ -3135,6 +3138,7 @@
</trans-unit> </trans-unit>
<trans-unit id="b7ef3894d9b6f157c400ddc937c70c9881ecd896" datatype="html"> <trans-unit id="b7ef3894d9b6f157c400ddc937c70c9881ecd896" datatype="html">
<source><x id="INTERPOLATION" equiv-text="&lt;span class=&quot;shared-block&quot;&gt;block&lt;/span&gt;&lt;/ng-template&gt; &lt;/div&gt;"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span class=&quot;shared-block&quot;&gt;"/>block<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/></source> <source><x id="INTERPOLATION" equiv-text="&lt;span class=&quot;shared-block&quot;&gt;block&lt;/span&gt;&lt;/ng-template&gt; &lt;/div&gt;"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span class=&quot;shared-block&quot;&gt;"/>block<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/></source>
<target><x id="INTERPOLATION" equiv-text="&lt;span class=&quot;shared-block&quot;&gt;block&lt;/span&gt;&lt;/ng-template&gt; &lt;/div&gt;"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span class=&quot;shared-block&quot;&gt;"/> blokk <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/></target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty-mining/difficulty-mining.component.html</context> <context context-type="sourcefile">src/app/components/difficulty-mining/difficulty-mining.component.html</context>
<context context-type="linenumber">11,12</context> <context context-type="linenumber">11,12</context>
@ -3199,6 +3203,7 @@
</trans-unit> </trans-unit>
<trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html"> <trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokkra várva</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">13</context> <context context-type="linenumber">13</context>
@ -3207,6 +3212,7 @@
</trans-unit> </trans-unit>
<trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html"> <trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokk várva</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">14</context> <context context-type="linenumber">14</context>
@ -3215,6 +3221,7 @@
</trans-unit> </trans-unit>
<trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html"> <trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokk bányászva</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">18</context> <context context-type="linenumber">18</context>
@ -3223,6 +3230,7 @@
</trans-unit> </trans-unit>
<trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html"> <trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokk bányászva</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">19</context> <context context-type="linenumber">19</context>
@ -3231,6 +3239,7 @@
</trans-unit> </trans-unit>
<trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html"> <trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokk hátramaradt</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">24</context> <context context-type="linenumber">24</context>
@ -3239,6 +3248,7 @@
</trans-unit> </trans-unit>
<trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html"> <trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokk hátramaradt</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">25</context> <context context-type="linenumber">25</context>
@ -3247,6 +3257,7 @@
</trans-unit> </trans-unit>
<trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html"> <trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokkal előrébb</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">29</context> <context context-type="linenumber">29</context>
@ -3255,6 +3266,7 @@
</trans-unit> </trans-unit>
<trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html"> <trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokkal előrébb</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">30</context> <context context-type="linenumber">30</context>
@ -3263,6 +3275,7 @@
</trans-unit> </trans-unit>
<trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html"> <trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokkal lemaradva</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">34</context> <context context-type="linenumber">34</context>
@ -3271,6 +3284,7 @@
</trans-unit> </trans-unit>
<trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html"> <trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokkal lemaradva</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">35</context> <context context-type="linenumber">35</context>
@ -3279,6 +3293,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html"> <trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html">
<source>Average block time</source> <source>Average block time</source>
<target>Átlagos blokk idő</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context>
<context context-type="linenumber">42,45</context> <context context-type="linenumber">42,45</context>
@ -3287,6 +3302,7 @@
</trans-unit> </trans-unit>
<trans-unit id="6ff9e8b67bc2cda7569dc0996d4c2fd858c5d4e6" datatype="html"> <trans-unit id="6ff9e8b67bc2cda7569dc0996d4c2fd858c5d4e6" datatype="html">
<source>Either 2x the minimum, or the Low Priority rate (whichever is lower)</source> <source>Either 2x the minimum, or the Low Priority rate (whichever is lower)</source>
<target>Vagy a minimum 2x-e, vagy az alacsony prioritási arány (amelyik alacsonyabb)</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/fees-box/fees-box.component.html</context> <context context-type="sourcefile">src/app/components/fees-box/fees-box.component.html</context>
<context context-type="linenumber">4,7</context> <context context-type="linenumber">4,7</context>
@ -3330,6 +3346,7 @@
</trans-unit> </trans-unit>
<trans-unit id="eeeeabc97373285d75acf0f013f68434a6f1935b" datatype="html"> <trans-unit id="eeeeabc97373285d75acf0f013f68434a6f1935b" datatype="html">
<source>Usually places your transaction in between the first and second mempool blocks</source> <source>Usually places your transaction in between the first and second mempool blocks</source>
<target>Ez tranzakciót általában az első és a második mempoolblokk közé helyezi</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/fees-box/fees-box.component.html</context> <context context-type="sourcefile">src/app/components/fees-box/fees-box.component.html</context>
<context context-type="linenumber">9,10</context> <context context-type="linenumber">9,10</context>
@ -3646,6 +3663,7 @@
</trans-unit> </trans-unit>
<trans-unit id="mining.pools-historical-dominance" datatype="html"> <trans-unit id="mining.pools-historical-dominance" datatype="html">
<source>Pools Historical Dominance</source> <source>Pools Historical Dominance</source>
<target>Történelmi Pool Fölény</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/hashrates-chart-pools/hashrate-chart-pools.component.ts</context> <context context-type="sourcefile">src/app/components/hashrates-chart-pools/hashrate-chart-pools.component.ts</context>
<context context-type="linenumber">64</context> <context context-type="linenumber">64</context>
@ -3653,6 +3671,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5ee5eb7db86675abd5f0b0db835bf362ee9b23ff" datatype="html"> <trans-unit id="5ee5eb7db86675abd5f0b0db835bf362ee9b23ff" datatype="html">
<source>Indexing network hashrate</source> <source>Indexing network hashrate</source>
<target>Hálózati hashrate indexelése</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/indexing-progress/indexing-progress.component.html</context> <context context-type="sourcefile">src/app/components/indexing-progress/indexing-progress.component.html</context>
<context context-type="linenumber">2</context> <context context-type="linenumber">2</context>
@ -3660,6 +3679,7 @@
</trans-unit> </trans-unit>
<trans-unit id="439adfcf08f5035e2fd9e4c15e40eef92f6cc780" datatype="html"> <trans-unit id="439adfcf08f5035e2fd9e4c15e40eef92f6cc780" datatype="html">
<source>Indexing pools hashrate</source> <source>Indexing pools hashrate</source>
<target>Indexelő poolok hashrátája</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/indexing-progress/indexing-progress.component.html</context> <context context-type="sourcefile">src/app/components/indexing-progress/indexing-progress.component.html</context>
<context context-type="linenumber">3</context> <context context-type="linenumber">3</context>
@ -3821,6 +3841,7 @@
</trans-unit> </trans-unit>
<trans-unit id="2711844b4304254e88358d1761f9c732e5aefc69" datatype="html"> <trans-unit id="2711844b4304254e88358d1761f9c732e5aefc69" datatype="html">
<source>Pools luck (1 week)</source> <source>Pools luck (1 week)</source>
<target>Pool szerencse (1 hét)</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context>
<context context-type="linenumber">9</context> <context context-type="linenumber">9</context>
@ -3838,6 +3859,7 @@
</trans-unit> </trans-unit>
<trans-unit id="e910ea39a964514d51802d34cad96c75b14947d1" datatype="html"> <trans-unit id="e910ea39a964514d51802d34cad96c75b14947d1" datatype="html">
<source>The overall luck of all mining pools over the past week. A luck bigger than 100% means the average block time for the current epoch is less than 10 minutes.</source> <source>The overall luck of all mining pools over the past week. A luck bigger than 100% means the average block time for the current epoch is less than 10 minutes.</source>
<target>Ez az összes bányászati mempool általános szerencséje az elmúlt héten. A 100%-ál nagyobb szerencse azt jelenti, hogy az átlagos blokkidő az aktuális korszakban kevesebb mint 10 perc.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context>
<context context-type="linenumber">11,15</context> <context context-type="linenumber">11,15</context>
@ -3846,6 +3868,7 @@
</trans-unit> </trans-unit>
<trans-unit id="9740454c3c55ca2cfa437ff9ec07374c9b9d25b5" datatype="html"> <trans-unit id="9740454c3c55ca2cfa437ff9ec07374c9b9d25b5" datatype="html">
<source>Pools count (1w)</source> <source>Pools count (1w)</source>
<target>Pool szám (1w)</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context>
<context context-type="linenumber">17</context> <context context-type="linenumber">17</context>
@ -3863,6 +3886,7 @@
</trans-unit> </trans-unit>
<trans-unit id="500e13dffc7300bf7e4822a6bbf29a71a55d7b75" datatype="html"> <trans-unit id="500e13dffc7300bf7e4822a6bbf29a71a55d7b75" datatype="html">
<source>How many unique pools found at least one block over the past week.</source> <source>How many unique pools found at least one block over the past week.</source>
<target>Hány egyedi pool talált legalább egy blokkot az elmúlt héten.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context>
<context context-type="linenumber">19,23</context> <context context-type="linenumber">19,23</context>
@ -3888,6 +3912,7 @@
</trans-unit> </trans-unit>
<trans-unit id="c9e8defa185fa8e342548958bf206de97afc97a6" datatype="html"> <trans-unit id="c9e8defa185fa8e342548958bf206de97afc97a6" datatype="html">
<source>The number of blocks found over the past week.</source> <source>The number of blocks found over the past week.</source>
<target>Az elmúlt héten talált blokkok száma.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context>
<context context-type="linenumber">27,31</context> <context context-type="linenumber">27,31</context>
@ -3944,6 +3969,7 @@
</trans-unit> </trans-unit>
<trans-unit id="8ef3568472375e791e861ca1ef76d4cb66eef8ef" datatype="html"> <trans-unit id="8ef3568472375e791e861ca1ef76d4cb66eef8ef" datatype="html">
<source>Pools Luck (1w)</source> <source>Pools Luck (1w)</source>
<target>Pool Szerencse (1w)</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context>
<context context-type="linenumber">146,148</context> <context context-type="linenumber">146,148</context>
@ -3952,6 +3978,7 @@
</trans-unit> </trans-unit>
<trans-unit id="e1ea393882afe8ac40ff7637a33a5a46bdb3e0ce" datatype="html"> <trans-unit id="e1ea393882afe8ac40ff7637a33a5a46bdb3e0ce" datatype="html">
<source>Pools Count (1w)</source> <source>Pools Count (1w)</source>
<target>Pool Szám (1w)</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context>
<context context-type="linenumber">158,160</context> <context context-type="linenumber">158,160</context>
@ -3968,6 +3995,7 @@
</trans-unit> </trans-unit>
<trans-unit id="312539377512157124" datatype="html"> <trans-unit id="312539377512157124" datatype="html">
<source><x id="INTERPOLATION" equiv-text="i"/> blocks</source> <source><x id="INTERPOLATION" equiv-text="i"/> blocks</source>
<target><x id="INTERPOLATION" equiv-text="i"/> blokkok</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">165,163</context> <context context-type="linenumber">165,163</context>
@ -3987,6 +4015,7 @@
</trans-unit> </trans-unit>
<trans-unit id="3666195172774554282" datatype="html"> <trans-unit id="3666195172774554282" datatype="html">
<source>Other (<x id="PH" equiv-text="percentage"/>)</source> <source>Other (<x id="PH" equiv-text="percentage"/>)</source>
<target>Egyéb (<x id="PH" equiv-text="percentage"/>)</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">201</context> <context context-type="linenumber">201</context>
@ -4082,6 +4111,7 @@
</trans-unit> </trans-unit>
<trans-unit id="cc657077942054572b255be033d634cf601c50b6" datatype="html"> <trans-unit id="cc657077942054572b255be033d634cf601c50b6" datatype="html">
<source>Hashrate (24h)</source> <source>Hashrate (24h)</source>
<target>Hashráta (24h)</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context> <context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
<context context-type="linenumber">91,93</context> <context context-type="linenumber">91,93</context>
@ -4165,6 +4195,7 @@
</trans-unit> </trans-unit>
<trans-unit id="88cb6e7b056be423b78e369ae1592c9e751095b8" datatype="html"> <trans-unit id="88cb6e7b056be423b78e369ae1592c9e751095b8" datatype="html">
<source>Mined blocks</source> <source>Mined blocks</source>
<target>Bányászott blokkok</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context> <context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
<context context-type="linenumber">141,143</context> <context context-type="linenumber">141,143</context>
@ -4224,6 +4255,7 @@
</trans-unit> </trans-unit>
<trans-unit id="7e93f7285e22e5a3c58cdde2205d4d2b5bfc079c" datatype="html"> <trans-unit id="7e93f7285e22e5a3c58cdde2205d4d2b5bfc079c" datatype="html">
<source>Transaction hex</source> <source>Transaction hex</source>
<target>Tranzakciós hex</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/push-transaction/push-transaction.component.html</context> <context context-type="sourcefile">src/app/components/push-transaction/push-transaction.component.html</context>
<context context-type="linenumber">6</context> <context context-type="linenumber">6</context>
@ -4253,6 +4285,7 @@
</trans-unit> </trans-unit>
<trans-unit id="79b0842a2010172290ad09062bf51f09d8842f65" datatype="html"> <trans-unit id="79b0842a2010172290ad09062bf51f09d8842f65" datatype="html">
<source>Amount being paid to miners in the past 144 blocks</source> <source>Amount being paid to miners in the past 144 blocks</source>
<target>A bányászoknak fizetett összeg az elmúlt 144 blokkban</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/reward-stats/reward-stats.component.html</context> <context context-type="sourcefile">src/app/components/reward-stats/reward-stats.component.html</context>
<context context-type="linenumber">6,8</context> <context context-type="linenumber">6,8</context>
@ -4261,6 +4294,7 @@
</trans-unit> </trans-unit>
<trans-unit id="1d9f405ab98a5f79d98b439de29fc8baca46b97c" datatype="html"> <trans-unit id="1d9f405ab98a5f79d98b439de29fc8baca46b97c" datatype="html">
<source>Avg Block Fees</source> <source>Avg Block Fees</source>
<target>Átlag Blokk Díjjak</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/reward-stats/reward-stats.component.html</context> <context context-type="sourcefile">src/app/components/reward-stats/reward-stats.component.html</context>
<context context-type="linenumber">17</context> <context context-type="linenumber">17</context>
@ -4273,6 +4307,7 @@
</trans-unit> </trans-unit>
<trans-unit id="a0d4ab5b063e7be1c9ea980f5fd6ce1b5384ad0b" datatype="html"> <trans-unit id="a0d4ab5b063e7be1c9ea980f5fd6ce1b5384ad0b" datatype="html">
<source>Average fees per block in the past 144 blocks</source> <source>Average fees per block in the past 144 blocks</source>
<target>Átlagos díjak blokkonként az elmúlt 144 blokkban</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/reward-stats/reward-stats.component.html</context> <context context-type="sourcefile">src/app/components/reward-stats/reward-stats.component.html</context>
<context context-type="linenumber">18,20</context> <context context-type="linenumber">18,20</context>
@ -4291,6 +4326,7 @@
</trans-unit> </trans-unit>
<trans-unit id="cf3a97b1c1546b843411cfe101bc55ba2ac46bac" datatype="html"> <trans-unit id="cf3a97b1c1546b843411cfe101bc55ba2ac46bac" datatype="html">
<source>Avg Tx Fee</source> <source>Avg Tx Fee</source>
<target>Átlag Tx Díj</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/reward-stats/reward-stats.component.html</context> <context context-type="sourcefile">src/app/components/reward-stats/reward-stats.component.html</context>
<context context-type="linenumber">30</context> <context context-type="linenumber">30</context>
@ -4303,6 +4339,7 @@
</trans-unit> </trans-unit>
<trans-unit id="8be96dc461529381c812f64962c62f4228d01470" datatype="html"> <trans-unit id="8be96dc461529381c812f64962c62f4228d01470" datatype="html">
<source>Fee paid on average for each transaction in the past 144 blocks</source> <source>Fee paid on average for each transaction in the past 144 blocks</source>
<target>Átlagosan fizetett díj minden tranzakció után az elmúlt 144 blokkban</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/reward-stats/reward-stats.component.html</context> <context context-type="sourcefile">src/app/components/reward-stats/reward-stats.component.html</context>
<context context-type="linenumber">31,32</context> <context context-type="linenumber">31,32</context>
@ -4334,6 +4371,7 @@
</trans-unit> </trans-unit>
<trans-unit id="7deec1c1520f06170e1f8e8ddfbe4532312f638f" datatype="html"> <trans-unit id="7deec1c1520f06170e1f8e8ddfbe4532312f638f" datatype="html">
<source>Explore the full Bitcoin ecosystem</source> <source>Explore the full Bitcoin ecosystem</source>
<target>Fedezze fel a teljes Bitcoin ökoszisztémát</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/search-form/search-form.component.html</context> <context context-type="sourcefile">src/app/components/search-form/search-form.component.html</context>
<context context-type="linenumber">4,5</context> <context context-type="linenumber">4,5</context>
@ -4351,6 +4389,7 @@
</trans-unit> </trans-unit>
<trans-unit id="0673b255ba8db0bc5e2cccd5962d31dc88c24578" datatype="html"> <trans-unit id="0673b255ba8db0bc5e2cccd5962d31dc88c24578" datatype="html">
<source>Bitcoin Block Height</source> <source>Bitcoin Block Height</source>
<target>Bitcoin Blokk Magasság</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/search-form/search-results/search-results.component.html</context> <context context-type="sourcefile">src/app/components/search-form/search-results/search-results.component.html</context>
<context context-type="linenumber">3</context> <context context-type="linenumber">3</context>
@ -4359,6 +4398,7 @@
</trans-unit> </trans-unit>
<trans-unit id="8b786a14d8c948e31bfb84369f123847a21dbf50" datatype="html"> <trans-unit id="8b786a14d8c948e31bfb84369f123847a21dbf50" datatype="html">
<source>Bitcoin Transaction</source> <source>Bitcoin Transaction</source>
<target>Bitcoin Tranzakció</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/search-form/search-results/search-results.component.html</context> <context context-type="sourcefile">src/app/components/search-form/search-results/search-results.component.html</context>
<context context-type="linenumber">9</context> <context context-type="linenumber">9</context>
@ -4367,6 +4407,7 @@
</trans-unit> </trans-unit>
<trans-unit id="aacf72635ebf6cfe00590e3a426ea6002c43a729" datatype="html"> <trans-unit id="aacf72635ebf6cfe00590e3a426ea6002c43a729" datatype="html">
<source>Bitcoin Address</source> <source>Bitcoin Address</source>
<target>Bitcoin Cím</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/search-form/search-results/search-results.component.html</context> <context context-type="sourcefile">src/app/components/search-form/search-results/search-results.component.html</context>
<context context-type="linenumber">15</context> <context context-type="linenumber">15</context>
@ -4375,6 +4416,7 @@
</trans-unit> </trans-unit>
<trans-unit id="97089c008af92d87389ff1ec5fb2cc96a6ecef0e" datatype="html"> <trans-unit id="97089c008af92d87389ff1ec5fb2cc96a6ecef0e" datatype="html">
<source>Bitcoin Block</source> <source>Bitcoin Block</source>
<target>Bitcoin Blokk</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/search-form/search-results/search-results.component.html</context> <context context-type="sourcefile">src/app/components/search-form/search-results/search-results.component.html</context>
<context context-type="linenumber">21</context> <context context-type="linenumber">21</context>
@ -4383,6 +4425,7 @@
</trans-unit> </trans-unit>
<trans-unit id="e89c09d708a1da5f6a59ba6c38ba3db78031fe0e" datatype="html"> <trans-unit id="e89c09d708a1da5f6a59ba6c38ba3db78031fe0e" datatype="html">
<source>Bitcoin Addresses</source> <source>Bitcoin Addresses</source>
<target>Bitcoin Cím</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/search-form/search-results/search-results.component.html</context> <context context-type="sourcefile">src/app/components/search-form/search-results/search-results.component.html</context>
<context context-type="linenumber">27</context> <context context-type="linenumber">27</context>
@ -4391,6 +4434,7 @@
</trans-unit> </trans-unit>
<trans-unit id="67f25165b857428d046fe5eb67fc44c5c3d94e87" datatype="html"> <trans-unit id="67f25165b857428d046fe5eb67fc44c5c3d94e87" datatype="html">
<source>Lightning Nodes</source> <source>Lightning Nodes</source>
<target>Villám Nodeok</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/search-form/search-results/search-results.component.html</context> <context context-type="sourcefile">src/app/components/search-form/search-results/search-results.component.html</context>
<context context-type="linenumber">35</context> <context context-type="linenumber">35</context>
@ -4399,6 +4443,7 @@
</trans-unit> </trans-unit>
<trans-unit id="db5ca37068eaee3f8b909d3b8b476164527cd8c3" datatype="html"> <trans-unit id="db5ca37068eaee3f8b909d3b8b476164527cd8c3" datatype="html">
<source>Lightning Channels</source> <source>Lightning Channels</source>
<target>Villám Csatornák</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/search-form/search-results/search-results.component.html</context> <context context-type="sourcefile">src/app/components/search-form/search-results/search-results.component.html</context>
<context context-type="linenumber">43</context> <context context-type="linenumber">43</context>
@ -4407,6 +4452,7 @@
</trans-unit> </trans-unit>
<trans-unit id="2abc4d0d3ae0b49fa9e94a2efb8c2e1a47e680f4" datatype="html"> <trans-unit id="2abc4d0d3ae0b49fa9e94a2efb8c2e1a47e680f4" datatype="html">
<source>Go to &quot;<x id="INTERPOLATION" equiv-text="{{ x }}"/>&quot;</source> <source>Go to &quot;<x id="INTERPOLATION" equiv-text="{{ x }}"/>&quot;</source>
<target>Ide menny &amp;quot;<x id="INTERPOLATION" equiv-text="{{ x }}"/>&amp;quot;</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/search-form/search-results/search-results.component.html</context> <context context-type="sourcefile">src/app/components/search-form/search-results/search-results.component.html</context>
<context context-type="linenumber">52</context> <context context-type="linenumber">52</context>
@ -4532,6 +4578,7 @@
</trans-unit> </trans-unit>
<trans-unit id="time-until" datatype="html"> <trans-unit id="time-until" datatype="html">
<source>In ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></source> <source>In ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></source>
<target>~<x id="DATE" equiv-text="dateStrings.i18nYear"/> belül</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/time/time.component.ts</context> <context context-type="sourcefile">src/app/components/time/time.component.ts</context>
<context context-type="linenumber">126</context> <context context-type="linenumber">126</context>
@ -4661,6 +4708,7 @@
</trans-unit> </trans-unit>
<trans-unit id="72cfda88d5ab4851cba76abb402cae8f03ab6c6b" datatype="html"> <trans-unit id="72cfda88d5ab4851cba76abb402cae8f03ab6c6b" datatype="html">
<source>This transaction replaced:</source> <source>This transaction replaced:</source>
<target>Ezt a tranzakció ezt cserélte:</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context> <context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">10,12</context> <context context-type="linenumber">10,12</context>
@ -5010,6 +5058,7 @@
</trans-unit> </trans-unit>
<trans-unit id="d70397ee91f6c9ec91f1c1dff88126f8f9b7c2c4" datatype="html"> <trans-unit id="d70397ee91f6c9ec91f1c1dff88126f8f9b7c2c4" datatype="html">
<source>Show more inputs to reveal fee data</source> <source>Show more inputs to reveal fee data</source>
<target>További bemenetek megjelenítése a díjadatok megjelenítéséhez</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/transactions-list/transactions-list.component.html</context> <context context-type="sourcefile">src/app/components/transactions-list/transactions-list.component.html</context>
<context context-type="linenumber">290,293</context> <context context-type="linenumber">290,293</context>
@ -5071,6 +5120,7 @@
</trans-unit> </trans-unit>
<trans-unit id="25d58cd5c18fd9c1c89d6062d67dcc2482161410" datatype="html"> <trans-unit id="25d58cd5c18fd9c1c89d6062d67dcc2482161410" datatype="html">
<source>This transaction saved <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedSegwitGains * 100 | number: '1.0-0' }}"/>% on fees by using native SegWit</source> <source>This transaction saved <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedSegwitGains * 100 | number: '1.0-0' }}"/>% on fees by using native SegWit</source>
<target>Ez a tranzakció <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedSegwitGains * 100 | number: '1.0-0' }}"/>% -ot takarított meg a díjakból a natív SegWit használatával</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context> <context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
<context context-type="linenumber">2</context> <context context-type="linenumber">2</context>
@ -5097,6 +5147,7 @@
</trans-unit> </trans-unit>
<trans-unit id="b6a3f6afdac6873e2d261647d834c02c91376893" datatype="html"> <trans-unit id="b6a3f6afdac6873e2d261647d834c02c91376893" datatype="html">
<source>This transaction saved <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedSegwitGains * 100 | number: '1.0-0' }}"/>% on fees by using SegWit and could save <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialSegwitGains * 100 | number : '1.0-0' }}"/>% more by fully upgrading to native SegWit</source> <source>This transaction saved <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedSegwitGains * 100 | number: '1.0-0' }}"/>% on fees by using SegWit and could save <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialSegwitGains * 100 | number : '1.0-0' }}"/>% more by fully upgrading to native SegWit</source>
<target>Ez a tranzakció <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedSegwitGains * 100 | number: '1.0-0' }}"/>% -os díjakat takarított meg a SegWit használatával, és további <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialSegwitGains * 100 | number : '1.0-0' }}"/>% -os megtakarítást érhetett el, ha teljes mértékben vált a natív SegWitre</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context> <context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
<context context-type="linenumber">4</context> <context context-type="linenumber">4</context>
@ -5105,6 +5156,7 @@
</trans-unit> </trans-unit>
<trans-unit id="a67530e246368aa7e5d010061fd84c3c4fe755c2" datatype="html"> <trans-unit id="a67530e246368aa7e5d010061fd84c3c4fe755c2" datatype="html">
<source>This transaction could save <x id="INTERPOLATION" equiv-text="{{ segwitGains.potentialSegwitGains * 100 | number : '1.0-0' }}"/>% on fees by upgrading to native SegWit or <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialP2shSegwitGains * 100 | number: '1.0-0' }}"/>% by upgrading to SegWit-P2SH</source> <source>This transaction could save <x id="INTERPOLATION" equiv-text="{{ segwitGains.potentialSegwitGains * 100 | number : '1.0-0' }}"/>% on fees by upgrading to native SegWit or <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialP2shSegwitGains * 100 | number: '1.0-0' }}"/>% by upgrading to SegWit-P2SH</source>
<target>Ez a tranzakció <x id="INTERPOLATION" equiv-text="{{ segwitGains.potentialSegwitGains * 100 | number : '1.0-0' }}"/>% -ot takaríthat meg a díjakból, ha natív SegWitre vált, vagy <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialP2shSegwitGains * 100 | number: '1.0-0' }}"/>% -ot, ha SegWit-P2SH-ra frissít</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context> <context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
<context context-type="linenumber">6</context> <context context-type="linenumber">6</context>
@ -5113,6 +5165,7 @@
</trans-unit> </trans-unit>
<trans-unit id="17e9c05e053cbd29d3835d8ecb19508d0f07241b" datatype="html"> <trans-unit id="17e9c05e053cbd29d3835d8ecb19508d0f07241b" datatype="html">
<source>This transaction uses Taproot and thereby saved at least <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedTaprootGains * 100 | number: '1.0-0' }}"/>% on fees</source> <source>This transaction uses Taproot and thereby saved at least <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedTaprootGains * 100 | number: '1.0-0' }}"/>% on fees</source>
<target>Ez a tranzakció Taprootot használ, és ezáltal legalább <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedTaprootGains * 100 | number: '1.0-0' }}"/>% -ot takarít meg a díjakon</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context> <context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
<context context-type="linenumber">12</context> <context context-type="linenumber">12</context>
@ -5147,6 +5200,7 @@
</trans-unit> </trans-unit>
<trans-unit id="47b821c7df420c96de0b22844a88c04d52628540" datatype="html"> <trans-unit id="47b821c7df420c96de0b22844a88c04d52628540" datatype="html">
<source>This transaction uses Taproot and already saved at least <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedTaprootGains * 100 | number: '1.0-0' }}"/>% on fees, but could save an additional <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialTaprootGains * 100 | number: '1.0-0' }}"/>% by fully using Taproot</source> <source>This transaction uses Taproot and already saved at least <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedTaprootGains * 100 | number: '1.0-0' }}"/>% on fees, but could save an additional <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialTaprootGains * 100 | number: '1.0-0' }}"/>% by fully using Taproot</source>
<target>Ez a tranzakció Taprootot használ, és már legalább <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedTaprootGains * 100 | number: '1.0-0' }}"/>% -ot megtakarított a díjakból, de további <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialTaprootGains * 100 | number: '1.0-0' }}"/>% -ot takaríthat meg a Taproot teljes használatával</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context> <context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
<context context-type="linenumber">14</context> <context context-type="linenumber">14</context>
@ -5155,6 +5209,7 @@
</trans-unit> </trans-unit>
<trans-unit id="aa31fc4d29f35b2fd36080bb6ff84be8eaab66fd" datatype="html"> <trans-unit id="aa31fc4d29f35b2fd36080bb6ff84be8eaab66fd" datatype="html">
<source>This transaction could save <x id="INTERPOLATION" equiv-text="{{ segwitGains.potentialTaprootGains * 100 | number: '1.0-0' }}"/>% on fees by using Taproot</source> <source>This transaction could save <x id="INTERPOLATION" equiv-text="{{ segwitGains.potentialTaprootGains * 100 | number: '1.0-0' }}"/>% on fees by using Taproot</source>
<target>Ez a tranzakció <x id="INTERPOLATION" equiv-text="{{ segwitGains.potentialTaprootGains * 100 | number: '1.0-0' }}"/>% -ot takaríthat meg a díjakból a Taproot használatával</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context> <context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
<context context-type="linenumber">16</context> <context context-type="linenumber">16</context>
@ -5163,6 +5218,7 @@
</trans-unit> </trans-unit>
<trans-unit id="b0fb884cf71b19e3a4d146146d260ccedd9d50a5" datatype="html"> <trans-unit id="b0fb884cf71b19e3a4d146146d260ccedd9d50a5" datatype="html">
<source>This transaction does not use Taproot</source> <source>This transaction does not use Taproot</source>
<target>Ez a tranzakció nem használja a Taproot-ot</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context> <context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
<context context-type="linenumber">18</context> <context context-type="linenumber">18</context>
@ -5180,6 +5236,7 @@
</trans-unit> </trans-unit>
<trans-unit id="07883574bb93ea23b764861f56a525bdaf907513" datatype="html"> <trans-unit id="07883574bb93ea23b764861f56a525bdaf907513" datatype="html">
<source>This transaction supports Replace-By-Fee (RBF) allowing fee bumping</source> <source>This transaction supports Replace-By-Fee (RBF) allowing fee bumping</source>
<target>Ez a tranzakció támogatja a Replace-By-Fee (RBF) funkciót, amely lehetővé teszi a díjak felfutását</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context> <context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
<context context-type="linenumber">28</context> <context context-type="linenumber">28</context>
@ -5305,6 +5362,7 @@
</trans-unit> </trans-unit>
<trans-unit id="8f2791f5d9656271dd6c385f5ad572716e90f4a2" datatype="html"> <trans-unit id="8f2791f5d9656271dd6c385f5ad572716e90f4a2" datatype="html">
<source><x id="START_BOLD_TEXT" ctype="x-b" equiv-text="mempool.space merely provides data about the Bitcoin network.&lt;/b&gt; It cannot help you with"/>mempool.space merely provides data about the Bitcoin network.<x id="CLOSE_BOLD_TEXT" ctype="x-b" equiv-text="&lt;/b&gt;"/> It cannot help you with retrieving funds, confirming your transaction quicker, etc.</source> <source><x id="START_BOLD_TEXT" ctype="x-b" equiv-text="mempool.space merely provides data about the Bitcoin network.&lt;/b&gt; It cannot help you with"/>mempool.space merely provides data about the Bitcoin network.<x id="CLOSE_BOLD_TEXT" ctype="x-b" equiv-text="&lt;/b&gt;"/> It cannot help you with retrieving funds, confirming your transaction quicker, etc.</source>
<target><x id="START_BOLD_TEXT" ctype="x-b" equiv-text="mempool.space merely provides data about the Bitcoin network.&lt;/b&gt; It cannot help you with"/>A mempool.space csupán adatokat szolgáltat a Bitcoin hálózatáról.<x id="CLOSE_BOLD_TEXT" ctype="x-b" equiv-text="&lt;/b&gt;"/> Nem segíthet a pénzeszközök visszaszerzésében, a tranzakció gyorsabb visszaigazolásában stb.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/docs/api-docs/api-docs.component.html</context> <context context-type="sourcefile">src/app/docs/api-docs/api-docs.component.html</context>
<context context-type="linenumber">13</context> <context context-type="linenumber">13</context>
@ -5457,6 +5515,7 @@
</trans-unit> </trans-unit>
<trans-unit id="fb2137ba0df55f21a9d6b6ad08d56d74ad852e0e" datatype="html"> <trans-unit id="fb2137ba0df55f21a9d6b6ad08d56d74ad852e0e" datatype="html">
<source>This channel supports zero base fee routing</source> <source>This channel supports zero base fee routing</source>
<target>Ez a csatorna támogatja a nulla alapdíjas útválasztást</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context> <context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context>
<context context-type="linenumber">44</context> <context context-type="linenumber">44</context>
@ -5474,6 +5533,7 @@
</trans-unit> </trans-unit>
<trans-unit id="b5e42e06ea8a4012a38eef209104bbd9dd1a0fc0" datatype="html"> <trans-unit id="b5e42e06ea8a4012a38eef209104bbd9dd1a0fc0" datatype="html">
<source>This channel does not support zero base fee routing</source> <source>This channel does not support zero base fee routing</source>
<target>Ez a csatorna nem támogatja a nulla alapdíjas útválasztást</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context> <context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context>
<context context-type="linenumber">50</context> <context context-type="linenumber">50</context>
@ -6006,6 +6066,7 @@
</trans-unit> </trans-unit>
<trans-unit id="db1f0c0605ab0c4a904523635982253ff72eed40" datatype="html"> <trans-unit id="db1f0c0605ab0c4a904523635982253ff72eed40" datatype="html">
<source>The average fee rate charged by routing nodes, ignoring fee rates &gt; 0.5% or 5000ppm</source> <source>The average fee rate charged by routing nodes, ignoring fee rates &gt; 0.5% or 5000ppm</source>
<target>Az útválasztási nódok által felszámított átlagos díjtétel, figyelmen kívül hagyva a &gt; 0,5% -os vagy 5000ppm-es díjakat</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context> <context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
<context context-type="linenumber">28,30</context> <context context-type="linenumber">28,30</context>
@ -6027,6 +6088,7 @@
</trans-unit> </trans-unit>
<trans-unit id="0a46218f4a7b17b6445460898d75ab78e7e7979b" datatype="html"> <trans-unit id="0a46218f4a7b17b6445460898d75ab78e7e7979b" datatype="html">
<source>The average base fee charged by routing nodes, ignoring base fees &gt; 5000ppm</source> <source>The average base fee charged by routing nodes, ignoring base fees &gt; 5000ppm</source>
<target>Az útválasztási nódok által felszámított átlagos alapdíj, figyelmen kívül hagyva az alapdíjakat &gt; 5000ppm</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context> <context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
<context context-type="linenumber">43,45</context> <context context-type="linenumber">43,45</context>
@ -6044,6 +6106,7 @@
</trans-unit> </trans-unit>
<trans-unit id="2c1c39e28735f607d62dbf3272eb792451c265a5" datatype="html"> <trans-unit id="2c1c39e28735f607d62dbf3272eb792451c265a5" datatype="html">
<source>Med Fee Rate</source> <source>Med Fee Rate</source>
<target>Közép Díj Ráta</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context> <context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
<context context-type="linenumber">72,74</context> <context context-type="linenumber">72,74</context>
@ -6052,6 +6115,7 @@
</trans-unit> </trans-unit>
<trans-unit id="cb4dae32e1b4d6a2ba6287d9f7bd859ca7259468" datatype="html"> <trans-unit id="cb4dae32e1b4d6a2ba6287d9f7bd859ca7259468" datatype="html">
<source>The median fee rate charged by routing nodes, ignoring fee rates &gt; 0.5% or 5000ppm</source> <source>The median fee rate charged by routing nodes, ignoring fee rates &gt; 0.5% or 5000ppm</source>
<target>Az útválasztási nódok által felszámított medián díjtétel, figyelmen kívül hagyva a &gt; 0,5% vagy 5000 ppm díjakat</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context> <context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
<context context-type="linenumber">74,76</context> <context context-type="linenumber">74,76</context>
@ -6060,6 +6124,7 @@
</trans-unit> </trans-unit>
<trans-unit id="a541dbcef4908bf2e767e77d7a09cc62450e8e56" datatype="html"> <trans-unit id="a541dbcef4908bf2e767e77d7a09cc62450e8e56" datatype="html">
<source>Med Base Fee</source> <source>Med Base Fee</source>
<target>Közép Alapdíj</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context> <context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
<context context-type="linenumber">87,89</context> <context context-type="linenumber">87,89</context>
@ -6068,6 +6133,7 @@
</trans-unit> </trans-unit>
<trans-unit id="b8539025268617abfcab1c3f2a2c60cd8d7485fb" datatype="html"> <trans-unit id="b8539025268617abfcab1c3f2a2c60cd8d7485fb" datatype="html">
<source>The median base fee charged by routing nodes, ignoring base fees &gt; 5000ppm</source> <source>The median base fee charged by routing nodes, ignoring base fees &gt; 5000ppm</source>
<target>Az útválasztási nódok által felszámított medián alapdíj, figyelmen kívül hagyva a &gt; 5000ppm alapdíjakat</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context> <context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
<context context-type="linenumber">89,91</context> <context context-type="linenumber">89,91</context>
@ -6076,6 +6142,7 @@
</trans-unit> </trans-unit>
<trans-unit id="de1c07e9943fc284461bb8fb4860faecf52a1568" datatype="html"> <trans-unit id="de1c07e9943fc284461bb8fb4860faecf52a1568" datatype="html">
<source>Lightning node group</source> <source>Lightning node group</source>
<target>Villám node csoport</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/group/group-preview.component.html</context> <context context-type="sourcefile">src/app/lightning/group/group-preview.component.html</context>
<context context-type="linenumber">3,5</context> <context context-type="linenumber">3,5</context>
@ -6285,6 +6352,7 @@
</trans-unit> </trans-unit>
<trans-unit id="29c05e9a540827cdfa8e3b2e5e2f27aeb478916c" datatype="html"> <trans-unit id="29c05e9a540827cdfa8e3b2e5e2f27aeb478916c" datatype="html">
<source>Network Statistics</source> <source>Network Statistics</source>
<target>Hálózati Statisztikák</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/lightning-dashboard/lightning-dashboard.component.html</context> <context context-type="sourcefile">src/app/lightning/lightning-dashboard/lightning-dashboard.component.html</context>
<context context-type="linenumber">10</context> <context context-type="linenumber">10</context>
@ -6293,6 +6361,7 @@
</trans-unit> </trans-unit>
<trans-unit id="066e05b9a5db60850d907783fde6913e2e47cd5b" datatype="html"> <trans-unit id="066e05b9a5db60850d907783fde6913e2e47cd5b" datatype="html">
<source>Channels Statistics</source> <source>Channels Statistics</source>
<target>Csatorna Statisztika</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/lightning-dashboard/lightning-dashboard.component.html</context> <context context-type="sourcefile">src/app/lightning/lightning-dashboard/lightning-dashboard.component.html</context>
<context context-type="linenumber">24</context> <context context-type="linenumber">24</context>
@ -6301,6 +6370,7 @@
</trans-unit> </trans-unit>
<trans-unit id="0f33aeb084ac4d83cb0fe6f72648a8585b1b5e88" datatype="html"> <trans-unit id="0f33aeb084ac4d83cb0fe6f72648a8585b1b5e88" datatype="html">
<source>Lightning Network History</source> <source>Lightning Network History</source>
<target>Villámhálózati Események</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/lightning-dashboard/lightning-dashboard.component.html</context> <context context-type="sourcefile">src/app/lightning/lightning-dashboard/lightning-dashboard.component.html</context>
<context context-type="linenumber">49</context> <context context-type="linenumber">49</context>
@ -6309,6 +6379,7 @@
</trans-unit> </trans-unit>
<trans-unit id="2d9883d230a47fbbb2ec969e32a186597ea27405" datatype="html"> <trans-unit id="2d9883d230a47fbbb2ec969e32a186597ea27405" datatype="html">
<source>Liquidity Ranking</source> <source>Liquidity Ranking</source>
<target>Likviditási Besorolás</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/lightning-dashboard/lightning-dashboard.component.html</context> <context context-type="sourcefile">src/app/lightning/lightning-dashboard/lightning-dashboard.component.html</context>
<context context-type="linenumber">62</context> <context context-type="linenumber">62</context>
@ -6333,6 +6404,7 @@
</trans-unit> </trans-unit>
<trans-unit id="c50bf442cf99f6fc5f8b687c460f33234b879869" datatype="html"> <trans-unit id="c50bf442cf99f6fc5f8b687c460f33234b879869" datatype="html">
<source>Connectivity Ranking</source> <source>Connectivity Ranking</source>
<target>Csatlakozottsági Besorolás</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/lightning-dashboard/lightning-dashboard.component.html</context> <context context-type="sourcefile">src/app/lightning/lightning-dashboard/lightning-dashboard.component.html</context>
<context context-type="linenumber">76</context> <context context-type="linenumber">76</context>
@ -6378,6 +6450,7 @@
</trans-unit> </trans-unit>
<trans-unit id="027f48063a5512e5c26b6ca88f7d7734e2d333a7" datatype="html"> <trans-unit id="027f48063a5512e5c26b6ca88f7d7734e2d333a7" datatype="html">
<source>Percentage change past week</source> <source>Percentage change past week</source>
<target>Százalékos változás a múlt héten</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/node-statistics/node-statistics.component.html</context> <context context-type="sourcefile">src/app/lightning/node-statistics/node-statistics.component.html</context>
<context context-type="linenumber">5,7</context> <context context-type="linenumber">5,7</context>
@ -6446,6 +6519,7 @@
</trans-unit> </trans-unit>
<trans-unit id="43b48b9c15083a164b401bf3775a4b99f3917699" datatype="html"> <trans-unit id="43b48b9c15083a164b401bf3775a4b99f3917699" datatype="html">
<source>Average channel size</source> <source>Average channel size</source>
<target>Átlag csatorna méret</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context> <context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
<context context-type="linenumber">43,46</context> <context context-type="linenumber">43,46</context>
@ -6454,6 +6528,7 @@
</trans-unit> </trans-unit>
<trans-unit id="008e9fb48f07f545af73b3f676dc60cc3a829765" datatype="html"> <trans-unit id="008e9fb48f07f545af73b3f676dc60cc3a829765" datatype="html">
<source>Avg channel distance</source> <source>Avg channel distance</source>
<target>Átlag csatorna távolság</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context> <context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
<context context-type="linenumber">59,60</context> <context context-type="linenumber">59,60</context>
@ -6484,6 +6559,7 @@
</trans-unit> </trans-unit>
<trans-unit id="86d9619247d148019e5599707c39a36e880a2d23" datatype="html"> <trans-unit id="86d9619247d148019e5599707c39a36e880a2d23" datatype="html">
<source>Exclusively on Tor</source> <source>Exclusively on Tor</source>
<target>Exkluzívan a Tor-on</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context> <context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
<context context-type="linenumber">96,98</context> <context context-type="linenumber">96,98</context>
@ -6492,6 +6568,7 @@
</trans-unit> </trans-unit>
<trans-unit id="e128630e07a4c467f51b246a31c5734d5fb1a2c2" datatype="html"> <trans-unit id="e128630e07a4c467f51b246a31c5734d5fb1a2c2" datatype="html">
<source>Liquidity ad</source> <source>Liquidity ad</source>
<target>Likviditási hirdetés</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context> <context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
<context context-type="linenumber">141,144</context> <context context-type="linenumber">141,144</context>
@ -6500,6 +6577,7 @@
</trans-unit> </trans-unit>
<trans-unit id="bc84b5a9a70217104a53c7139e30b392be6520b7" datatype="html"> <trans-unit id="bc84b5a9a70217104a53c7139e30b392be6520b7" datatype="html">
<source>Lease fee rate</source> <source>Lease fee rate</source>
<target>Lízing díj ráta</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context> <context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
<context context-type="linenumber">147,150</context> <context context-type="linenumber">147,150</context>
@ -6509,6 +6587,7 @@
</trans-unit> </trans-unit>
<trans-unit id="ee807dd54b4a45eeba284744c64774de1ab5e4f1" datatype="html"> <trans-unit id="ee807dd54b4a45eeba284744c64774de1ab5e4f1" datatype="html">
<source>Lease base fee</source> <source>Lease base fee</source>
<target>Lízing alapdíj</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context> <context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
<context context-type="linenumber">155,157</context> <context context-type="linenumber">155,157</context>
@ -6517,6 +6596,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5e348f3d51c3bb283c16572bee1e293ea991cf49" datatype="html"> <trans-unit id="5e348f3d51c3bb283c16572bee1e293ea991cf49" datatype="html">
<source>Funding weight</source> <source>Funding weight</source>
<target>A finanszírozás súlya</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context> <context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
<context context-type="linenumber">161,162</context> <context context-type="linenumber">161,162</context>
@ -6525,6 +6605,7 @@
</trans-unit> </trans-unit>
<trans-unit id="8af4768ed9112268945c697923ce017fbe23e1b7" datatype="html"> <trans-unit id="8af4768ed9112268945c697923ce017fbe23e1b7" datatype="html">
<source>Channel fee rate</source> <source>Channel fee rate</source>
<target>Csatorna díj ráta</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context> <context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
<context context-type="linenumber">171,174</context> <context context-type="linenumber">171,174</context>
@ -6543,6 +6624,7 @@
</trans-unit> </trans-unit>
<trans-unit id="e8e09fa12864e94f094a2a7c8c97cfdf0cff8aab" datatype="html"> <trans-unit id="e8e09fa12864e94f094a2a7c8c97cfdf0cff8aab" datatype="html">
<source>Compact lease</source> <source>Compact lease</source>
<target>Kompakt lízing</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context> <context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
<context context-type="linenumber">191,193</context> <context context-type="linenumber">191,193</context>
@ -6586,6 +6668,7 @@
</trans-unit> </trans-unit>
<trans-unit id="7cac1c3013423d82d5149a5854d709bd08411430" datatype="html"> <trans-unit id="7cac1c3013423d82d5149a5854d709bd08411430" datatype="html">
<source>(Tor nodes excluded)</source> <source>(Tor nodes excluded)</source>
<target>(Tor nódok kiszűrve)</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-channels-map/nodes-channels-map.component.html</context> <context context-type="sourcefile">src/app/lightning/nodes-channels-map/nodes-channels-map.component.html</context>
<context context-type="linenumber">8,11</context> <context context-type="linenumber">8,11</context>
@ -6606,6 +6689,7 @@
</trans-unit> </trans-unit>
<trans-unit id="8199511328474154549" datatype="html"> <trans-unit id="8199511328474154549" datatype="html">
<source>Lightning Nodes Channels World Map</source> <source>Lightning Nodes Channels World Map</source>
<target>Villám Nódok Csatorna Világtérképe</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts</context> <context context-type="sourcefile">src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts</context>
<context context-type="linenumber">69</context> <context context-type="linenumber">69</context>
@ -6642,6 +6726,7 @@
</trans-unit> </trans-unit>
<trans-unit id="599038141003770125" datatype="html"> <trans-unit id="599038141003770125" datatype="html">
<source>Clearnet and Darknet</source> <source>Clearnet and Darknet</source>
<target>Clearnet és Darknet</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context> <context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context>
<context context-type="linenumber">164,161</context> <context context-type="linenumber">164,161</context>
@ -6653,6 +6738,7 @@
</trans-unit> </trans-unit>
<trans-unit id="1282458597026430784" datatype="html"> <trans-unit id="1282458597026430784" datatype="html">
<source>Clearnet Only (IPv4, IPv6)</source> <source>Clearnet Only (IPv4, IPv6)</source>
<target>Csakis Clearnet (IPv4, IPv6)</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context> <context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context>
<context context-type="linenumber">185,182</context> <context context-type="linenumber">185,182</context>
@ -6664,6 +6750,7 @@
</trans-unit> </trans-unit>
<trans-unit id="2165336009914523952" datatype="html"> <trans-unit id="2165336009914523952" datatype="html">
<source>Darknet Only (Tor, I2P, cjdns)</source> <source>Darknet Only (Tor, I2P, cjdns)</source>
<target>Csak Darknet (Tor, I2P, cjdns)</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context> <context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context>
<context context-type="linenumber">206,203</context> <context context-type="linenumber">206,203</context>
@ -6688,6 +6775,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5222540403093176126" datatype="html"> <trans-unit id="5222540403093176126" datatype="html">
<source><x id="PH" equiv-text="nodeCount"/> nodes</source> <source><x id="PH" equiv-text="nodeCount"/> nodes</source>
<target><x id="PH" equiv-text="nodeCount"/> nodeok</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts</context> <context context-type="sourcefile">src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts</context>
<context context-type="linenumber">104,103</context> <context context-type="linenumber">104,103</context>
@ -6715,6 +6803,7 @@
</trans-unit> </trans-unit>
<trans-unit id="7ede3edfacd291eb9db08e11845d9efdf197f417" datatype="html"> <trans-unit id="7ede3edfacd291eb9db08e11845d9efdf197f417" datatype="html">
<source>Lightning nodes in <x id="INTERPOLATION" equiv-text="{{ country?.name }}"/></source> <source>Lightning nodes in <x id="INTERPOLATION" equiv-text="{{ country?.name }}"/></source>
<target>Villámnodeok itt <x id="INTERPOLATION" equiv-text="{{ country?.name }}"/></target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-country/nodes-per-country.component.html</context> <context context-type="sourcefile">src/app/lightning/nodes-per-country/nodes-per-country.component.html</context>
<context context-type="linenumber">3,4</context> <context context-type="linenumber">3,4</context>
@ -6762,6 +6851,7 @@
</trans-unit> </trans-unit>
<trans-unit id="ccabb31683868066778a1d664aa53ee9fcf77d6b" datatype="html"> <trans-unit id="ccabb31683868066778a1d664aa53ee9fcf77d6b" datatype="html">
<source>How much liquidity is running on nodes advertising at least one clearnet IP address</source> <source>How much liquidity is running on nodes advertising at least one clearnet IP address</source>
<target>Mennyi likviditás fut a legalább egy clearnet IP-címet hirdető nódokon</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html</context> <context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html</context>
<context context-type="linenumber">8,9</context> <context context-type="linenumber">8,9</context>
@ -6783,6 +6873,7 @@
</trans-unit> </trans-unit>
<trans-unit id="26fb07e8754b87bba4bf12c5137ffa77dac389a8" datatype="html"> <trans-unit id="26fb07e8754b87bba4bf12c5137ffa77dac389a8" datatype="html">
<source>How much liquidity is running on nodes which ISP was not identifiable</source> <source>How much liquidity is running on nodes which ISP was not identifiable</source>
<target>Mennyi likviditás fut azon nódokon, amelyek internetszolgáltatója nem volt azonosítható</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html</context> <context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html</context>
<context context-type="linenumber">15,16</context> <context context-type="linenumber">15,16</context>
@ -6804,6 +6895,7 @@
</trans-unit> </trans-unit>
<trans-unit id="23549ef4e1f846f06abcf07ceecb115945a0cf61" datatype="html"> <trans-unit id="23549ef4e1f846f06abcf07ceecb115945a0cf61" datatype="html">
<source>How much liquidity is running on nodes advertising only Tor addresses</source> <source>How much liquidity is running on nodes advertising only Tor addresses</source>
<target>Mennyi likviditás fut a csak Tor-címeket hirdető nódokon</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html</context> <context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html</context>
<context context-type="linenumber">22,23</context> <context context-type="linenumber">22,23</context>
@ -6812,6 +6904,7 @@
</trans-unit> </trans-unit>
<trans-unit id="e008f2a76179fdcd7110b41ca624131f91075949" datatype="html"> <trans-unit id="e008f2a76179fdcd7110b41ca624131f91075949" datatype="html">
<source>Top 100 ISPs hosting LN nodes</source> <source>Top 100 ISPs hosting LN nodes</source>
<target>A 100 legjobb LN-nódot szolgáltató internetszolgáltató</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html</context> <context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html</context>
<context context-type="linenumber">31,33</context> <context context-type="linenumber">31,33</context>
@ -6863,6 +6956,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5735693498020397727" datatype="html"> <trans-unit id="5735693498020397727" datatype="html">
<source>Lightning nodes on ISP: <x id="PH" equiv-text="response.isp"/> [AS<x id="PH_1" equiv-text="this.route.snapshot.params.isp"/>]</source> <source>Lightning nodes on ISP: <x id="PH" equiv-text="response.isp"/> [AS<x id="PH_1" equiv-text="this.route.snapshot.params.isp"/>]</source>
<target>Villám nódok az internetszolgáltatón: <x id="PH" equiv-text="response.isp"/> [MINT<x id="PH_1" equiv-text="this.route.snapshot.params.isp"/>]</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.ts</context> <context context-type="sourcefile">src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.ts</context>
<context context-type="linenumber">44</context> <context context-type="linenumber">44</context>
@ -6874,6 +6968,7 @@
</trans-unit> </trans-unit>
<trans-unit id="d82f436f033a7d81680b8430275f94dda530151c" datatype="html"> <trans-unit id="d82f436f033a7d81680b8430275f94dda530151c" datatype="html">
<source>Lightning nodes on ISP: <x id="INTERPOLATION" equiv-text="{{ isp?.name }}"/></source> <source>Lightning nodes on ISP: <x id="INTERPOLATION" equiv-text="{{ isp?.name }}"/></source>
<target>Villámnódok az internetszolgáltatón: <x id="INTERPOLATION" equiv-text="{{ isp?.name }}"/></target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-isp/nodes-per-isp.component.html</context> <context context-type="sourcefile">src/app/lightning/nodes-per-isp/nodes-per-isp.component.html</context>
<context context-type="linenumber">2,4</context> <context context-type="linenumber">2,4</context>
@ -6900,6 +6995,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5b727d251b06e9959cf24a90250a480d425339de" datatype="html"> <trans-unit id="5b727d251b06e9959cf24a90250a480d425339de" datatype="html">
<source>Top 100 oldest lightning nodes</source> <source>Top 100 oldest lightning nodes</source>
<target>100 legrégebbi lightning nodeok</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.html</context> <context context-type="sourcefile">src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.html</context>
<context context-type="linenumber">3,7</context> <context context-type="linenumber">3,7</context>

View File

@ -3203,7 +3203,7 @@
</trans-unit> </trans-unit>
<trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html"> <trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source>
<target>예상한 <x id="INTERPOLATION" equiv-text="{{ i }}"/>개 블록</target> <target>예측된 블록들: <x id="INTERPOLATION" equiv-text="{{ i }}"/></target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">13</context> <context context-type="linenumber">13</context>
@ -3221,7 +3221,7 @@
</trans-unit> </trans-unit>
<trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html"> <trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source>
<target>채굴된 <x id="INTERPOLATION" equiv-text="{{ i }}"/>개 블록</target> <target>채굴된 블록들: <x id="INTERPOLATION" equiv-text="{{ i }}"/></target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">18</context> <context context-type="linenumber">18</context>
@ -3239,7 +3239,7 @@
</trans-unit> </trans-unit>
<trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html"> <trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source>
<target>남은 <x id="INTERPOLATION" equiv-text="{{ i }}"/>개 블록</target> <target>남은 블록: <x id="INTERPOLATION" equiv-text="{{ i }}"/></target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">24</context> <context context-type="linenumber">24</context>
@ -3257,7 +3257,7 @@
</trans-unit> </trans-unit>
<trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html"> <trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source>
<target>앞서있는 <x id="INTERPOLATION" equiv-text="{{ i }}"/>개 블록</target> <target>현재 앞서있는 블록: <x id="INTERPOLATION" equiv-text="{{ i }}"/></target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">29</context> <context context-type="linenumber">29</context>
@ -3275,7 +3275,7 @@
</trans-unit> </trans-unit>
<trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html"> <trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source>
<target>뒤처진 <x id="INTERPOLATION" equiv-text="{{ i }}"/>개 블록</target> <target>현재 뒤처져있는 블록: <x id="INTERPOLATION" equiv-text="{{ i }}"/></target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">34</context> <context context-type="linenumber">34</context>
@ -4371,7 +4371,7 @@
</trans-unit> </trans-unit>
<trans-unit id="7deec1c1520f06170e1f8e8ddfbe4532312f638f" datatype="html"> <trans-unit id="7deec1c1520f06170e1f8e8ddfbe4532312f638f" datatype="html">
<source>Explore the full Bitcoin ecosystem</source> <source>Explore the full Bitcoin ecosystem</source>
<target>비트코인 생태계 전체를 탐험하세요.</target> <target>비트코인 네트워크 전체를 검색해 보세요</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/search-form/search-form.component.html</context> <context context-type="sourcefile">src/app/components/search-form/search-form.component.html</context>
<context context-type="linenumber">4,5</context> <context context-type="linenumber">4,5</context>
@ -4578,7 +4578,7 @@
</trans-unit> </trans-unit>
<trans-unit id="time-until" datatype="html"> <trans-unit id="time-until" datatype="html">
<source>In ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></source> <source>In ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></source>
<target>~<x id="DATE" equiv-text="dateStrings.i18nYear"/> 안에</target> <target>~<x id="DATE" equiv-text="dateStrings.i18nYear"/> </target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/time/time.component.ts</context> <context context-type="sourcefile">src/app/components/time/time.component.ts</context>
<context context-type="linenumber">126</context> <context context-type="linenumber">126</context>

View File

@ -3203,6 +3203,7 @@
</trans-unit> </trans-unit>
<trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html"> <trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source>
<target>Tikimasi <x id="INTERPOLATION" equiv-text="{{ i }}"/> blokų</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">13</context> <context context-type="linenumber">13</context>
@ -3211,6 +3212,7 @@
</trans-unit> </trans-unit>
<trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html"> <trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source>
<target>Tikimasi <x id="INTERPOLATION" equiv-text="{{ i }}"/> bloko</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">14</context> <context context-type="linenumber">14</context>
@ -3219,6 +3221,7 @@
</trans-unit> </trans-unit>
<trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html"> <trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source>
<target>Rasti <x id="INTERPOLATION" equiv-text="{{ i }}"/> blokai</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">18</context> <context context-type="linenumber">18</context>
@ -3227,6 +3230,7 @@
</trans-unit> </trans-unit>
<trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html"> <trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source>
<target>Rastas <x id="INTERPOLATION" equiv-text="{{ i }}"/> blokas </target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">19</context> <context context-type="linenumber">19</context>
@ -3235,6 +3239,7 @@
</trans-unit> </trans-unit>
<trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html"> <trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source>
<target>Liko <x id="INTERPOLATION" equiv-text="{{ i }}"/> blokai</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">24</context> <context context-type="linenumber">24</context>
@ -3243,6 +3248,7 @@
</trans-unit> </trans-unit>
<trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html"> <trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source>
<target>Liko <x id="INTERPOLATION" equiv-text="{{ i }}"/> blokas</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">25</context> <context context-type="linenumber">25</context>
@ -3251,6 +3257,7 @@
</trans-unit> </trans-unit>
<trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html"> <trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokai priekyje</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">29</context> <context context-type="linenumber">29</context>
@ -3259,6 +3266,7 @@
</trans-unit> </trans-unit>
<trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html"> <trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokas priekyje</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">30</context> <context context-type="linenumber">30</context>
@ -3267,6 +3275,7 @@
</trans-unit> </trans-unit>
<trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html"> <trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokai už</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">34</context> <context context-type="linenumber">34</context>
@ -3275,6 +3284,7 @@
</trans-unit> </trans-unit>
<trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html"> <trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokas už</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">35</context> <context context-type="linenumber">35</context>
@ -3283,6 +3293,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html"> <trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html">
<source>Average block time</source> <source>Average block time</source>
<target>Vidutinis bloko laikas</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context>
<context context-type="linenumber">42,45</context> <context context-type="linenumber">42,45</context>
@ -3984,6 +3995,7 @@
</trans-unit> </trans-unit>
<trans-unit id="312539377512157124" datatype="html"> <trans-unit id="312539377512157124" datatype="html">
<source><x id="INTERPOLATION" equiv-text="i"/> blocks</source> <source><x id="INTERPOLATION" equiv-text="i"/> blocks</source>
<target><x id="INTERPOLATION" equiv-text="i"/> blokai</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">165,163</context> <context context-type="linenumber">165,163</context>
@ -4003,6 +4015,7 @@
</trans-unit> </trans-unit>
<trans-unit id="3666195172774554282" datatype="html"> <trans-unit id="3666195172774554282" datatype="html">
<source>Other (<x id="PH" equiv-text="percentage"/>)</source> <source>Other (<x id="PH" equiv-text="percentage"/>)</source>
<target>Kita (<x id="PH" equiv-text="percentage"/>)</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">201</context> <context context-type="linenumber">201</context>
@ -4565,6 +4578,7 @@
</trans-unit> </trans-unit>
<trans-unit id="time-until" datatype="html"> <trans-unit id="time-until" datatype="html">
<source>In ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></source> <source>In ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></source>
<target>Už ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/time/time.component.ts</context> <context context-type="sourcefile">src/app/components/time/time.component.ts</context>
<context context-type="linenumber">126</context> <context context-type="linenumber">126</context>
@ -6761,6 +6775,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5222540403093176126" datatype="html"> <trans-unit id="5222540403093176126" datatype="html">
<source><x id="PH" equiv-text="nodeCount"/> nodes</source> <source><x id="PH" equiv-text="nodeCount"/> nodes</source>
<target><x id="PH" equiv-text="nodeCount"/> mazgai</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts</context> <context context-type="sourcefile">src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts</context>
<context context-type="linenumber">104,103</context> <context context-type="linenumber">104,103</context>
@ -7079,7 +7094,7 @@
</trans-unit> </trans-unit>
<trans-unit id="date-base.days" datatype="html"> <trans-unit id="date-base.days" datatype="html">
<source><x id="DATE" equiv-text="counter"/> days</source> <source><x id="DATE" equiv-text="counter"/> days</source>
<target> <x id="DATE" equiv-text="counter"/> dienos</target> <target><x id="DATE" equiv-text="counter"/> dienų</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context> <context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
<context context-type="linenumber">10</context> <context context-type="linenumber">10</context>

View File

@ -3203,6 +3203,7 @@
</trans-unit> </trans-unit>
<trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html"> <trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokker forventet</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">13</context> <context context-type="linenumber">13</context>
@ -3211,6 +3212,7 @@
</trans-unit> </trans-unit>
<trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html"> <trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokk forventet</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">14</context> <context context-type="linenumber">14</context>
@ -3219,6 +3221,7 @@
</trans-unit> </trans-unit>
<trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html"> <trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokker utvunnet</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">18</context> <context context-type="linenumber">18</context>
@ -3227,6 +3230,7 @@
</trans-unit> </trans-unit>
<trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html"> <trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokk utvunnet</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">19</context> <context context-type="linenumber">19</context>
@ -3235,6 +3239,7 @@
</trans-unit> </trans-unit>
<trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html"> <trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokker gjenstår</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">24</context> <context context-type="linenumber">24</context>
@ -3243,6 +3248,7 @@
</trans-unit> </trans-unit>
<trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html"> <trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokk gjenstår</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">25</context> <context context-type="linenumber">25</context>
@ -3251,6 +3257,7 @@
</trans-unit> </trans-unit>
<trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html"> <trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokker foran</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">29</context> <context context-type="linenumber">29</context>
@ -3259,6 +3266,7 @@
</trans-unit> </trans-unit>
<trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html"> <trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokk foran</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">30</context> <context context-type="linenumber">30</context>
@ -3267,6 +3275,7 @@
</trans-unit> </trans-unit>
<trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html"> <trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokker bak</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">34</context> <context context-type="linenumber">34</context>
@ -3275,6 +3284,7 @@
</trans-unit> </trans-unit>
<trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html"> <trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokk bak</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">35</context> <context context-type="linenumber">35</context>
@ -3283,6 +3293,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html"> <trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html">
<source>Average block time</source> <source>Average block time</source>
<target>Gjennomsnittlig blokktid</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context>
<context context-type="linenumber">42,45</context> <context context-type="linenumber">42,45</context>
@ -3764,7 +3775,7 @@
</trans-unit> </trans-unit>
<trans-unit id="26e78cd052d05a0c1a7db43fac8df52ec6950672" datatype="html"> <trans-unit id="26e78cd052d05a0c1a7db43fac8df52ec6950672" datatype="html">
<source>Reward stats</source> <source>Reward stats</source>
<target>Belonnings-statistikk</target> <target>Belønnings-statistikk</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/mining-dashboard/mining-dashboard.component.html</context> <context context-type="sourcefile">src/app/components/mining-dashboard/mining-dashboard.component.html</context>
<context context-type="linenumber">9</context> <context context-type="linenumber">9</context>
@ -3839,7 +3850,7 @@
</trans-unit> </trans-unit>
<trans-unit id="ea1a87734b5cc78ea8b268343497d92136855cd1" datatype="html"> <trans-unit id="ea1a87734b5cc78ea8b268343497d92136855cd1" datatype="html">
<source>Pools luck</source> <source>Pools luck</source>
<target>Utvinningsgrupper flaks</target> <target>Flaks</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context>
<context context-type="linenumber">9,11</context> <context context-type="linenumber">9,11</context>
@ -3866,7 +3877,7 @@
</trans-unit> </trans-unit>
<trans-unit id="1107f1b39cd8474087d438971892967a331a6c7d" datatype="html"> <trans-unit id="1107f1b39cd8474087d438971892967a331a6c7d" datatype="html">
<source>Pools count</source> <source>Pools count</source>
<target>Antall utvinningsgrupper</target> <target>Antall grupper</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context>
<context context-type="linenumber">17,19</context> <context context-type="linenumber">17,19</context>
@ -3984,6 +3995,7 @@
</trans-unit> </trans-unit>
<trans-unit id="312539377512157124" datatype="html"> <trans-unit id="312539377512157124" datatype="html">
<source><x id="INTERPOLATION" equiv-text="i"/> blocks</source> <source><x id="INTERPOLATION" equiv-text="i"/> blocks</source>
<target><x id="INTERPOLATION" equiv-text="i"/> blokker</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">165,163</context> <context context-type="linenumber">165,163</context>
@ -4003,6 +4015,7 @@
</trans-unit> </trans-unit>
<trans-unit id="3666195172774554282" datatype="html"> <trans-unit id="3666195172774554282" datatype="html">
<source>Other (<x id="PH" equiv-text="percentage"/>)</source> <source>Other (<x id="PH" equiv-text="percentage"/>)</source>
<target>Annet (<x id="PH" equiv-text="percentage"/>)</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">201</context> <context context-type="linenumber">201</context>
@ -4281,7 +4294,7 @@
</trans-unit> </trans-unit>
<trans-unit id="1d9f405ab98a5f79d98b439de29fc8baca46b97c" datatype="html"> <trans-unit id="1d9f405ab98a5f79d98b439de29fc8baca46b97c" datatype="html">
<source>Avg Block Fees</source> <source>Avg Block Fees</source>
<target>Gjennomsnittlig blokkavgift</target> <target>Gj.sn. blokkavgift</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/reward-stats/reward-stats.component.html</context> <context context-type="sourcefile">src/app/components/reward-stats/reward-stats.component.html</context>
<context context-type="linenumber">17</context> <context context-type="linenumber">17</context>
@ -4565,6 +4578,7 @@
</trans-unit> </trans-unit>
<trans-unit id="time-until" datatype="html"> <trans-unit id="time-until" datatype="html">
<source>In ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></source> <source>In ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></source>
<target>Om ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/time/time.component.ts</context> <context context-type="sourcefile">src/app/components/time/time.component.ts</context>
<context context-type="linenumber">126</context> <context context-type="linenumber">126</context>
@ -6761,6 +6775,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5222540403093176126" datatype="html"> <trans-unit id="5222540403093176126" datatype="html">
<source><x id="PH" equiv-text="nodeCount"/> nodes</source> <source><x id="PH" equiv-text="nodeCount"/> nodes</source>
<target><x id="PH" equiv-text="nodeCount"/> noder</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts</context> <context context-type="sourcefile">src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts</context>
<context context-type="linenumber">104,103</context> <context context-type="linenumber">104,103</context>

View File

@ -3203,6 +3203,7 @@
</trans-unit> </trans-unit>
<trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html"> <trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokken verwacht</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">13</context> <context context-type="linenumber">13</context>
@ -3211,6 +3212,7 @@
</trans-unit> </trans-unit>
<trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html"> <trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blok verwacht</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">14</context> <context context-type="linenumber">14</context>
@ -3219,6 +3221,7 @@
</trans-unit> </trans-unit>
<trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html"> <trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokken gemined</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">18</context> <context context-type="linenumber">18</context>
@ -3227,6 +3230,7 @@
</trans-unit> </trans-unit>
<trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html"> <trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blok gemined</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">19</context> <context context-type="linenumber">19</context>
@ -3235,6 +3239,7 @@
</trans-unit> </trans-unit>
<trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html"> <trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source>
<target>Nog <x id="INTERPOLATION" equiv-text="{{ i }}"/> blokken over </target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">24</context> <context context-type="linenumber">24</context>
@ -3243,6 +3248,7 @@
</trans-unit> </trans-unit>
<trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html"> <trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source>
<target>Nog <x id="INTERPOLATION" equiv-text="{{ i }}"/> blok over</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">25</context> <context context-type="linenumber">25</context>
@ -3251,6 +3257,7 @@
</trans-unit> </trans-unit>
<trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html"> <trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokken verder</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">29</context> <context context-type="linenumber">29</context>
@ -3259,6 +3266,7 @@
</trans-unit> </trans-unit>
<trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html"> <trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blok verder</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">30</context> <context context-type="linenumber">30</context>
@ -3267,6 +3275,7 @@
</trans-unit> </trans-unit>
<trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html"> <trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokken achter</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">34</context> <context context-type="linenumber">34</context>
@ -3275,6 +3284,7 @@
</trans-unit> </trans-unit>
<trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html"> <trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blok achter</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">35</context> <context context-type="linenumber">35</context>
@ -3283,6 +3293,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html"> <trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html">
<source>Average block time</source> <source>Average block time</source>
<target>Gemiddelde bloktijd</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context>
<context context-type="linenumber">42,45</context> <context context-type="linenumber">42,45</context>
@ -3984,6 +3995,7 @@
</trans-unit> </trans-unit>
<trans-unit id="312539377512157124" datatype="html"> <trans-unit id="312539377512157124" datatype="html">
<source><x id="INTERPOLATION" equiv-text="i"/> blocks</source> <source><x id="INTERPOLATION" equiv-text="i"/> blocks</source>
<target><x id="INTERPOLATION" equiv-text="i"/> blokken</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">165,163</context> <context context-type="linenumber">165,163</context>
@ -4003,6 +4015,7 @@
</trans-unit> </trans-unit>
<trans-unit id="3666195172774554282" datatype="html"> <trans-unit id="3666195172774554282" datatype="html">
<source>Other (<x id="PH" equiv-text="percentage"/>)</source> <source>Other (<x id="PH" equiv-text="percentage"/>)</source>
<target>Ander (<x id="PH" equiv-text="percentage"/>)</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">201</context> <context context-type="linenumber">201</context>
@ -6713,6 +6726,7 @@
</trans-unit> </trans-unit>
<trans-unit id="599038141003770125" datatype="html"> <trans-unit id="599038141003770125" datatype="html">
<source>Clearnet and Darknet</source> <source>Clearnet and Darknet</source>
<target>Clearnet en Darknet</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context> <context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context>
<context context-type="linenumber">164,161</context> <context context-type="linenumber">164,161</context>
@ -6724,6 +6738,7 @@
</trans-unit> </trans-unit>
<trans-unit id="1282458597026430784" datatype="html"> <trans-unit id="1282458597026430784" datatype="html">
<source>Clearnet Only (IPv4, IPv6)</source> <source>Clearnet Only (IPv4, IPv6)</source>
<target>Alleen Clearnet (IPv4, IPv6)</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context> <context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context>
<context context-type="linenumber">185,182</context> <context context-type="linenumber">185,182</context>
@ -6735,6 +6750,7 @@
</trans-unit> </trans-unit>
<trans-unit id="2165336009914523952" datatype="html"> <trans-unit id="2165336009914523952" datatype="html">
<source>Darknet Only (Tor, I2P, cjdns)</source> <source>Darknet Only (Tor, I2P, cjdns)</source>
<target>Alleen Darknet (Tor, I2P, cjdns)</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context> <context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context>
<context context-type="linenumber">206,203</context> <context context-type="linenumber">206,203</context>
@ -6759,6 +6775,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5222540403093176126" datatype="html"> <trans-unit id="5222540403093176126" datatype="html">
<source><x id="PH" equiv-text="nodeCount"/> nodes</source> <source><x id="PH" equiv-text="nodeCount"/> nodes</source>
<target><x id="PH" equiv-text="nodeCount"/> nodes</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts</context> <context context-type="sourcefile">src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts</context>
<context context-type="linenumber">104,103</context> <context context-type="linenumber">104,103</context>

View File

@ -991,7 +991,7 @@
</trans-unit> </trans-unit>
<trans-unit id="dfc2fb58e2a04ed944a4bd80f0a2087775134068" datatype="html"> <trans-unit id="dfc2fb58e2a04ed944a4bd80f0a2087775134068" datatype="html">
<source>Amount</source> <source>Amount</source>
<target>Cantitatea</target> <target>Cantitate</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/bisq/bisq-trades/bisq-trades.component.html</context> <context context-type="sourcefile">src/app/bisq/bisq-trades/bisq-trades.component.html</context>
<context context-type="linenumber">9,12</context> <context context-type="linenumber">9,12</context>
@ -3203,6 +3203,7 @@
</trans-unit> </trans-unit>
<trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html"> <trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocuri așteptate</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">13</context> <context context-type="linenumber">13</context>
@ -3211,6 +3212,7 @@
</trans-unit> </trans-unit>
<trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html"> <trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> bloc așteptat</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">14</context> <context context-type="linenumber">14</context>
@ -3219,6 +3221,7 @@
</trans-unit> </trans-unit>
<trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html"> <trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocuri minate</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">18</context> <context context-type="linenumber">18</context>
@ -3227,6 +3230,7 @@
</trans-unit> </trans-unit>
<trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html"> <trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> bloc minat</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">19</context> <context context-type="linenumber">19</context>
@ -3235,6 +3239,7 @@
</trans-unit> </trans-unit>
<trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html"> <trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocuri rămase</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">24</context> <context context-type="linenumber">24</context>
@ -3243,6 +3248,7 @@
</trans-unit> </trans-unit>
<trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html"> <trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> bloc rămas</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">25</context> <context context-type="linenumber">25</context>
@ -3251,6 +3257,7 @@
</trans-unit> </trans-unit>
<trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html"> <trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocuri înainte</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">29</context> <context context-type="linenumber">29</context>
@ -3259,6 +3266,7 @@
</trans-unit> </trans-unit>
<trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html"> <trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> bloc înainte</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">30</context> <context context-type="linenumber">30</context>
@ -3267,6 +3275,7 @@
</trans-unit> </trans-unit>
<trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html"> <trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocuri în urmă</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">34</context> <context context-type="linenumber">34</context>
@ -3275,6 +3284,7 @@
</trans-unit> </trans-unit>
<trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html"> <trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> bloc în urmă</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">35</context> <context context-type="linenumber">35</context>
@ -3283,6 +3293,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html"> <trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html">
<source>Average block time</source> <source>Average block time</source>
<target>Timpul mediu al blocurilor</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context>
<context context-type="linenumber">42,45</context> <context context-type="linenumber">42,45</context>
@ -3984,6 +3995,7 @@
</trans-unit> </trans-unit>
<trans-unit id="312539377512157124" datatype="html"> <trans-unit id="312539377512157124" datatype="html">
<source><x id="INTERPOLATION" equiv-text="i"/> blocks</source> <source><x id="INTERPOLATION" equiv-text="i"/> blocks</source>
<target><x id="INTERPOLATION" equiv-text="i"/> blocuri</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">165,163</context> <context context-type="linenumber">165,163</context>
@ -4003,6 +4015,7 @@
</trans-unit> </trans-unit>
<trans-unit id="3666195172774554282" datatype="html"> <trans-unit id="3666195172774554282" datatype="html">
<source>Other (<x id="PH" equiv-text="percentage"/>)</source> <source>Other (<x id="PH" equiv-text="percentage"/>)</source>
<target>Altele (<x id="PH" equiv-text="percentage"/>)</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">201</context> <context context-type="linenumber">201</context>
@ -6713,6 +6726,7 @@
</trans-unit> </trans-unit>
<trans-unit id="599038141003770125" datatype="html"> <trans-unit id="599038141003770125" datatype="html">
<source>Clearnet and Darknet</source> <source>Clearnet and Darknet</source>
<target>Clearnet și Darknet</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context> <context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context>
<context context-type="linenumber">164,161</context> <context context-type="linenumber">164,161</context>
@ -6724,6 +6738,7 @@
</trans-unit> </trans-unit>
<trans-unit id="1282458597026430784" datatype="html"> <trans-unit id="1282458597026430784" datatype="html">
<source>Clearnet Only (IPv4, IPv6)</source> <source>Clearnet Only (IPv4, IPv6)</source>
<target>Numai Clearnet (IPv4, IPv6)</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context> <context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context>
<context context-type="linenumber">185,182</context> <context context-type="linenumber">185,182</context>
@ -6735,6 +6750,7 @@
</trans-unit> </trans-unit>
<trans-unit id="2165336009914523952" datatype="html"> <trans-unit id="2165336009914523952" datatype="html">
<source>Darknet Only (Tor, I2P, cjdns)</source> <source>Darknet Only (Tor, I2P, cjdns)</source>
<target>Numai Darknet (Tor, I2P, cjdns)</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context> <context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context>
<context context-type="linenumber">206,203</context> <context context-type="linenumber">206,203</context>
@ -6746,7 +6762,7 @@
</trans-unit> </trans-unit>
<trans-unit id="0bd8b27f60a1f098a53e06328426d818e3508ff9" datatype="html"> <trans-unit id="0bd8b27f60a1f098a53e06328426d818e3508ff9" datatype="html">
<source>Share</source> <source>Share</source>
<target>Partajează</target> <target>Parte</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html</context> <context context-type="sourcefile">src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html</context>
<context context-type="linenumber">29,31</context> <context context-type="linenumber">29,31</context>
@ -6759,6 +6775,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5222540403093176126" datatype="html"> <trans-unit id="5222540403093176126" datatype="html">
<source><x id="PH" equiv-text="nodeCount"/> nodes</source> <source><x id="PH" equiv-text="nodeCount"/> nodes</source>
<target><x id="PH" equiv-text="nodeCount"/> noduri</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts</context> <context context-type="sourcefile">src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts</context>
<context context-type="linenumber">104,103</context> <context context-type="linenumber">104,103</context>

View File

@ -5757,7 +5757,7 @@
</trans-unit> </trans-unit>
<trans-unit id="8fd0077b032e360ece45c4fd655f85b2400dcb83" datatype="html"> <trans-unit id="8fd0077b032e360ece45c4fd655f85b2400dcb83" datatype="html">
<source>ppm</source> <source>ppm</source>
<target>частей на миллион</target> <target>ppm</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channel/channel-preview.component.html</context> <context context-type="sourcefile">src/app/lightning/channel/channel-preview.component.html</context>
<context context-type="linenumber">34,35</context> <context context-type="linenumber">34,35</context>
@ -6066,7 +6066,7 @@
</trans-unit> </trans-unit>
<trans-unit id="db1f0c0605ab0c4a904523635982253ff72eed40" datatype="html"> <trans-unit id="db1f0c0605ab0c4a904523635982253ff72eed40" datatype="html">
<source>The average fee rate charged by routing nodes, ignoring fee rates &gt; 0.5% or 5000ppm</source> <source>The average fee rate charged by routing nodes, ignoring fee rates &gt; 0.5% or 5000ppm</source>
<target>Средняя комиссия, взимаемая узлами маршрутизации, без учета ставок комиссии &gt; 0,5% или 5000 ppm.</target> <target>Средняя комиссия, взимаемая узлами маршрутизации, без учета ставок комиссии &gt;0,5% или 5000 частей на миллион.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context> <context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
<context context-type="linenumber">28,30</context> <context context-type="linenumber">28,30</context>
@ -6088,7 +6088,7 @@
</trans-unit> </trans-unit>
<trans-unit id="0a46218f4a7b17b6445460898d75ab78e7e7979b" datatype="html"> <trans-unit id="0a46218f4a7b17b6445460898d75ab78e7e7979b" datatype="html">
<source>The average base fee charged by routing nodes, ignoring base fees &gt; 5000ppm</source> <source>The average base fee charged by routing nodes, ignoring base fees &gt; 5000ppm</source>
<target>Средняя базовая комиссия, взимаемая узлами маршрутизации, без учета базовых комиссий &gt; 5000 ppm</target> <target>Средняя базовая комиссия, взимаемая узлами маршрутизации, без учета базовых комиссий &gt; 5000 частей на миллион</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context> <context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
<context context-type="linenumber">43,45</context> <context context-type="linenumber">43,45</context>
@ -6115,7 +6115,7 @@
</trans-unit> </trans-unit>
<trans-unit id="cb4dae32e1b4d6a2ba6287d9f7bd859ca7259468" datatype="html"> <trans-unit id="cb4dae32e1b4d6a2ba6287d9f7bd859ca7259468" datatype="html">
<source>The median fee rate charged by routing nodes, ignoring fee rates &gt; 0.5% or 5000ppm</source> <source>The median fee rate charged by routing nodes, ignoring fee rates &gt; 0.5% or 5000ppm</source>
<target>Медианная комиссия, взимаемая узлами маршрутизации, без учета ставок комиссии &gt; 0,5% или 5000 ppm.</target> <target>Медианная комиссия, взимаемая узлами маршрутизации, без учета ставок комиссии &gt; 0,5% или 5000 частей на миллион.</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context> <context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
<context context-type="linenumber">74,76</context> <context context-type="linenumber">74,76</context>
@ -6133,7 +6133,7 @@
</trans-unit> </trans-unit>
<trans-unit id="b8539025268617abfcab1c3f2a2c60cd8d7485fb" datatype="html"> <trans-unit id="b8539025268617abfcab1c3f2a2c60cd8d7485fb" datatype="html">
<source>The median base fee charged by routing nodes, ignoring base fees &gt; 5000ppm</source> <source>The median base fee charged by routing nodes, ignoring base fees &gt; 5000ppm</source>
<target>Медианная базовая комиссия, взимаемая узлами маршрутизации, без учета базовых комиссий &gt; 5000 ppm</target> <target>Медианная базовая комиссия, взимаемая узлами маршрутизации, без учета базовых комиссий &gt; 5000 частей на миллион</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context> <context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
<context context-type="linenumber">89,91</context> <context context-type="linenumber">89,91</context>

File diff suppressed because it is too large Load Diff

View File

@ -3203,6 +3203,7 @@
</trans-unit> </trans-unit>
<trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html"> <trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source>
<target>beklenen blok: <x id="INTERPOLATION" equiv-text="{{ i }}"/></target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">13</context> <context context-type="linenumber">13</context>
@ -3211,6 +3212,7 @@
</trans-unit> </trans-unit>
<trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html"> <trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source>
<target>beklenen blok: <x id="INTERPOLATION" equiv-text="{{ i }}"/></target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">14</context> <context context-type="linenumber">14</context>
@ -3219,6 +3221,7 @@
</trans-unit> </trans-unit>
<trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html"> <trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source>
<target>kazılan bloklar: <x id="INTERPOLATION" equiv-text="{{ i }}"/></target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">18</context> <context context-type="linenumber">18</context>
@ -3227,6 +3230,7 @@
</trans-unit> </trans-unit>
<trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html"> <trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source>
<target>kazılan bloklar: <x id="INTERPOLATION" equiv-text="{{ i }}"/></target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">19</context> <context context-type="linenumber">19</context>
@ -3235,6 +3239,7 @@
</trans-unit> </trans-unit>
<trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html"> <trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source>
<target>kalan bloklar: <x id="INTERPOLATION" equiv-text="{{ i }}"/></target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">24</context> <context context-type="linenumber">24</context>
@ -3243,6 +3248,7 @@
</trans-unit> </trans-unit>
<trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html"> <trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source>
<target>kalan bloklar: <x id="INTERPOLATION" equiv-text="{{ i }}"/></target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">25</context> <context context-type="linenumber">25</context>
@ -3251,6 +3257,7 @@
</trans-unit> </trans-unit>
<trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html"> <trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blok önde</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">29</context> <context context-type="linenumber">29</context>
@ -3259,6 +3266,7 @@
</trans-unit> </trans-unit>
<trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html"> <trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blok önde</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">30</context> <context context-type="linenumber">30</context>
@ -3267,6 +3275,7 @@
</trans-unit> </trans-unit>
<trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html"> <trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blok geride</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">34</context> <context context-type="linenumber">34</context>
@ -3275,6 +3284,7 @@
</trans-unit> </trans-unit>
<trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html"> <trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source> <source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source>
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blok geride</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">35</context> <context context-type="linenumber">35</context>
@ -3283,6 +3293,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html"> <trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html">
<source>Average block time</source> <source>Average block time</source>
<target>Ortalama blok zamanı</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context>
<context context-type="linenumber">42,45</context> <context context-type="linenumber">42,45</context>
@ -3984,6 +3995,7 @@
</trans-unit> </trans-unit>
<trans-unit id="312539377512157124" datatype="html"> <trans-unit id="312539377512157124" datatype="html">
<source><x id="INTERPOLATION" equiv-text="i"/> blocks</source> <source><x id="INTERPOLATION" equiv-text="i"/> blocks</source>
<target><x id="INTERPOLATION" equiv-text="i"/> bloklar</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">165,163</context> <context context-type="linenumber">165,163</context>
@ -4003,6 +4015,7 @@
</trans-unit> </trans-unit>
<trans-unit id="3666195172774554282" datatype="html"> <trans-unit id="3666195172774554282" datatype="html">
<source>Other (<x id="PH" equiv-text="percentage"/>)</source> <source>Other (<x id="PH" equiv-text="percentage"/>)</source>
<target>Diğer (<x id="PH" equiv-text="percentage"/>)</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">201</context> <context context-type="linenumber">201</context>
@ -4439,7 +4452,7 @@
</trans-unit> </trans-unit>
<trans-unit id="2abc4d0d3ae0b49fa9e94a2efb8c2e1a47e680f4" datatype="html"> <trans-unit id="2abc4d0d3ae0b49fa9e94a2efb8c2e1a47e680f4" datatype="html">
<source>Go to &quot;<x id="INTERPOLATION" equiv-text="{{ x }}"/>&quot;</source> <source>Go to &quot;<x id="INTERPOLATION" equiv-text="{{ x }}"/>&quot;</source>
<target>&quot;<x id="INTERPOLATION" equiv-text="{{ x }}"/>&quot; 'a git;</target> <target>&quot;<x id="INTERPOLATION" equiv-text="{{ x }}"/>&quot; 'e git</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/search-form/search-results/search-results.component.html</context> <context context-type="sourcefile">src/app/components/search-form/search-results/search-results.component.html</context>
<context context-type="linenumber">52</context> <context context-type="linenumber">52</context>
@ -6762,6 +6775,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5222540403093176126" datatype="html"> <trans-unit id="5222540403093176126" datatype="html">
<source><x id="PH" equiv-text="nodeCount"/> nodes</source> <source><x id="PH" equiv-text="nodeCount"/> nodes</source>
<target><x id="PH" equiv-text="nodeCount"/> düğüm</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts</context> <context context-type="sourcefile">src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts</context>
<context context-type="linenumber">104,103</context> <context context-type="linenumber">104,103</context>

View File

@ -3283,6 +3283,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html"> <trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html">
<source>Average block time</source> <source>Average block time</source>
<target>Thời gian khối trung bình</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context> <context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context>
<context context-type="linenumber">42,45</context> <context context-type="linenumber">42,45</context>
@ -3984,6 +3985,7 @@
</trans-unit> </trans-unit>
<trans-unit id="312539377512157124" datatype="html"> <trans-unit id="312539377512157124" datatype="html">
<source><x id="INTERPOLATION" equiv-text="i"/> blocks</source> <source><x id="INTERPOLATION" equiv-text="i"/> blocks</source>
<target><x id="INTERPOLATION" equiv-text="i"/> khối</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">165,163</context> <context context-type="linenumber">165,163</context>
@ -4003,6 +4005,7 @@
</trans-unit> </trans-unit>
<trans-unit id="3666195172774554282" datatype="html"> <trans-unit id="3666195172774554282" datatype="html">
<source>Other (<x id="PH" equiv-text="percentage"/>)</source> <source>Other (<x id="PH" equiv-text="percentage"/>)</source>
<target>Khác (<x id="PH" equiv-text="percentage"/>)</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context> <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">201</context> <context context-type="linenumber">201</context>
@ -4565,6 +4568,7 @@
</trans-unit> </trans-unit>
<trans-unit id="time-until" datatype="html"> <trans-unit id="time-until" datatype="html">
<source>In ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></source> <source>In ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></source>
<target>Trong ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/time/time.component.ts</context> <context context-type="sourcefile">src/app/components/time/time.component.ts</context>
<context context-type="linenumber">126</context> <context context-type="linenumber">126</context>
@ -6712,6 +6716,7 @@
</trans-unit> </trans-unit>
<trans-unit id="599038141003770125" datatype="html"> <trans-unit id="599038141003770125" datatype="html">
<source>Clearnet and Darknet</source> <source>Clearnet and Darknet</source>
<target>Clearnet và Darknet</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context> <context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context>
<context context-type="linenumber">164,161</context> <context context-type="linenumber">164,161</context>
@ -6723,6 +6728,7 @@
</trans-unit> </trans-unit>
<trans-unit id="1282458597026430784" datatype="html"> <trans-unit id="1282458597026430784" datatype="html">
<source>Clearnet Only (IPv4, IPv6)</source> <source>Clearnet Only (IPv4, IPv6)</source>
<target>Chỉ Clearnet (IPv4, IPv6)</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context> <context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context>
<context context-type="linenumber">185,182</context> <context context-type="linenumber">185,182</context>
@ -6734,6 +6740,7 @@
</trans-unit> </trans-unit>
<trans-unit id="2165336009914523952" datatype="html"> <trans-unit id="2165336009914523952" datatype="html">
<source>Darknet Only (Tor, I2P, cjdns)</source> <source>Darknet Only (Tor, I2P, cjdns)</source>
<target>Chỉ Darknet (Tor, I2P, cjdns)</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context> <context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context>
<context context-type="linenumber">206,203</context> <context context-type="linenumber">206,203</context>
@ -6758,6 +6765,7 @@
</trans-unit> </trans-unit>
<trans-unit id="5222540403093176126" datatype="html"> <trans-unit id="5222540403093176126" datatype="html">
<source><x id="PH" equiv-text="nodeCount"/> nodes</source> <source><x id="PH" equiv-text="nodeCount"/> nodes</source>
<target>nút <x id="PH" equiv-text="nodeCount"/></target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts</context> <context context-type="sourcefile">src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts</context>
<context context-type="linenumber">104,103</context> <context context-type="linenumber">104,103</context>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -0,0 +1 @@
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 52.67 80.82"><defs><style>.cls-1{fill:#ffe000;}</style></defs><title>RaspiBlitz_Logo_Icon_Negative</title><path class="cls-1" d="M133.56,119l-17-24.25,4.94-28.13L80.89,95l17,24.25-5,28.13ZM91.94,97l18.43-12.91-2.19,12.49L122.5,117l-18.43,12.88,2.22-12.49Z" transform="translate(-80.89 -66.59)"/></svg>

After

Width:  |  Height:  |  Size: 388 B

View File

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View File

@ -1,6 +1,5 @@
{ {
"MEMPOOL": { "MEMPOOL": {
"ENABLED": false,
"NETWORK": "mainnet", "NETWORK": "mainnet",
"BACKEND": "esplora", "BACKEND": "esplora",
"HTTP_PORT": 8993, "HTTP_PORT": 8993,

View File

@ -1,6 +1,5 @@
{ {
"MEMPOOL": { "MEMPOOL": {
"ENABLED": false,
"NETWORK": "signet", "NETWORK": "signet",
"BACKEND": "esplora", "BACKEND": "esplora",
"HTTP_PORT": 8991, "HTTP_PORT": 8991,

View File

@ -1,6 +1,5 @@
{ {
"MEMPOOL": { "MEMPOOL": {
"ENABLED": false,
"NETWORK": "testnet", "NETWORK": "testnet",
"BACKEND": "esplora", "BACKEND": "esplora",
"HTTP_PORT": 8992, "HTTP_PORT": 8992,