diff --git a/src/main/java/org/qortal/controller/BlockMinter.java b/src/main/java/org/qortal/controller/BlockMinter.java index 33431258..4eea91a9 100644 --- a/src/main/java/org/qortal/controller/BlockMinter.java +++ b/src/main/java/org/qortal/controller/BlockMinter.java @@ -16,6 +16,7 @@ import org.qortal.account.PrivateKeyAccount; import org.qortal.block.Block; import org.qortal.block.Block.ValidationResult; import org.qortal.block.BlockChain; +import org.qortal.data.account.AccountData; import org.qortal.data.account.MintingAccountData; import org.qortal.data.account.RewardShareData; import org.qortal.data.block.BlockData; @@ -47,6 +48,11 @@ public class BlockMinter extends Thread { // Recovery public static final long INVALID_BLOCK_RECOVERY_TIMEOUT = 10 * 60 * 1000L; // ms + // Min account level to submit blocks + // This is an unvalidated version of Blockchain.minAccountLevelToMint + // and exists only to reduce block candidates by default. + private static int MIN_LEVEL_FOR_BLOCK_SUBMISSION = 3; + // Constructors public BlockMinter() { @@ -130,6 +136,16 @@ public class BlockMinter extends Thread { madi.remove(); continue; } + + // Optional (non-validated) prevention of block submissions below a defined level + AccountData accountData = repository.getAccountRepository().getAccount(mintingAccount.getAddress()); + if (accountData != null) { + Integer level = accountData.getLevel(); + if (level != null && level < MIN_LEVEL_FOR_BLOCK_SUBMISSION) { + madi.remove(); + continue; + } + } } List peers = Network.getInstance().getHandshakedPeers();