Browse Source

Reordered code in Block.mint() to fix potential issue after mempow activates.

BLOCK_SUMMARIES_V2
CalDescent 2 years ago
parent
commit
84d42b93e1
  1. 9
      src/main/java/org/qortal/block/Block.java

9
src/main/java/org/qortal/block/Block.java

@ -368,16 +368,17 @@ public class Block {
// Fetch our list of online accounts
List<OnlineAccountData> onlineAccounts = OnlineAccountsManager.getInstance().getOnlineAccounts(onlineAccountsTimestamp);
if (onlineAccounts.isEmpty()) {
LOGGER.error("No online accounts - not even our own?");
return null;
}
// If mempow is active, remove any legacy accounts that are missing a nonce
if (timestamp >= BlockChain.getInstance().getOnlineAccountsMemoryPoWTimestamp()) {
onlineAccounts.removeIf(a -> a.getNonce() == null || a.getNonce() < 0);
}
if (onlineAccounts.isEmpty()) {
LOGGER.error("No online accounts - not even our own?");
return null;
}
// Load sorted list of reward share public keys into memory, so that the indexes can be obtained.
// This is up to 100x faster than querying each index separately. For 4150 reward share keys, it
// was taking around 5000ms to query individually, vs 50ms using this approach.

Loading…
Cancel
Save