From 33cfd02c4960f81ea1c2a82986eeab31d146811a Mon Sep 17 00:00:00 2001 From: CalDescent Date: Wed, 2 Aug 2023 21:13:33 +0100 Subject: [PATCH 1/3] Fixed issues in commit f5c8dfe --- src/main/java/org/qortal/controller/BlockMinter.java | 9 +++++++++ src/main/java/org/qortal/transaction/Transaction.java | 3 +-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/qortal/controller/BlockMinter.java b/src/main/java/org/qortal/controller/BlockMinter.java index bc879f23..deb00587 100644 --- a/src/main/java/org/qortal/controller/BlockMinter.java +++ b/src/main/java/org/qortal/controller/BlockMinter.java @@ -484,6 +484,9 @@ public class BlockMinter extends Thread { // Sign to create block's signature, needed by Block.isValid() newBlock.sign(); + // User-defined limit per block + int limit = Settings.getInstance().getMaxTransactionsPerBlock(); + // Attempt to add transactions until block is full, or we run out // If a transaction makes the block invalid then skip it and it'll either expire or be in next block. for (TransactionData transactionData : unconfirmedTransactions) { @@ -496,6 +499,12 @@ public class BlockMinter extends Thread { LOGGER.debug(() -> String.format("Skipping invalid transaction %s during block minting", Base58.encode(transactionData.getSignature()))); newBlock.deleteTransaction(transactionData); } + + // User-defined limit per block + List transactions = newBlock.getTransactions(); + if (transactions != null && transactions.size() >= limit) { + break; + } } } diff --git a/src/main/java/org/qortal/transaction/Transaction.java b/src/main/java/org/qortal/transaction/Transaction.java index 10834a06..bd91f25a 100644 --- a/src/main/java/org/qortal/transaction/Transaction.java +++ b/src/main/java/org/qortal/transaction/Transaction.java @@ -641,8 +641,7 @@ public abstract class Transaction { BlockData latestBlockData = repository.getBlockRepository().getLastBlock(); EnumSet excludedTxTypes = EnumSet.of(TransactionType.CHAT, TransactionType.PRESENCE); - int limit = Settings.getInstance().getMaxTransactionsPerBlock(); - List unconfirmedTransactions = repository.getTransactionRepository().getUnconfirmedTransactions(excludedTxTypes, limit); + List unconfirmedTransactions = repository.getTransactionRepository().getUnconfirmedTransactions(excludedTxTypes, null); unconfirmedTransactions.sort(getDataComparator()); From 528583fe381287c71597ed5a123a66512d6c37b4 Mon Sep 17 00:00:00 2001 From: CalDescent Date: Wed, 2 Aug 2023 21:32:57 +0100 Subject: [PATCH 2/3] Added logging relating to unconfirmed transactions. --- src/main/java/org/qortal/controller/BlockMinter.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/org/qortal/controller/BlockMinter.java b/src/main/java/org/qortal/controller/BlockMinter.java index deb00587..b1ed7e3c 100644 --- a/src/main/java/org/qortal/controller/BlockMinter.java +++ b/src/main/java/org/qortal/controller/BlockMinter.java @@ -380,9 +380,13 @@ public class BlockMinter extends Thread { parentSignatureForLastLowWeightBlock = null; timeOfLastLowWeightBlock = null; + Long unconfirmedStartTime = NTP.getTime(); + // Add unconfirmed transactions addUnconfirmedTransactions(repository, newBlock); + LOGGER.info(String.format("Adding %d unconfirmed transactions took %d ms", newBlock.getTransactions().size(), (NTP.getTime()-unconfirmedStartTime))); + // Sign to create block's signature newBlock.sign(); From 9574100a0880b46122b103dd2a6820e43fa66c8b Mon Sep 17 00:00:00 2001 From: CalDescent Date: Wed, 2 Aug 2023 21:36:57 +0100 Subject: [PATCH 3/3] Bump version to 4.2.2 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1a046758..30ad1e04 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.qortal qortal - 4.2.1 + 4.2.2 jar true