mirror of
https://github.com/Qortal/qortal.git
synced 2025-02-12 02:05:50 +00:00
Removed name check and decreased difficulty for online signature
This commit is contained in:
parent
6648c4be22
commit
d79d64f6b0
@ -219,6 +219,7 @@ public class Account {
|
|||||||
int level = accountData.getLevel();
|
int level = accountData.getLevel();
|
||||||
int groupIdToMint = BlockChain.getInstance().getMintingGroupId();
|
int groupIdToMint = BlockChain.getInstance().getMintingGroupId();
|
||||||
int groupCheckHeight = BlockChain.getInstance().getGroupMemberCheckHeight();
|
int groupCheckHeight = BlockChain.getInstance().getGroupMemberCheckHeight();
|
||||||
|
int removeNameCheckHeight = BlockChain.getInstance().getRemoveOnlyMintWithNameHeight();
|
||||||
|
|
||||||
String myAddress = accountData.getAddress();
|
String myAddress = accountData.getAddress();
|
||||||
List<NameData> myName = nameRepository.getNamesByOwner(myAddress);
|
List<NameData> myName = nameRepository.getNamesByOwner(myAddress);
|
||||||
@ -236,7 +237,11 @@ public class Account {
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
// Can only mint if have registered a name and is member of minter group id
|
// Can only mint if have registered a name and is member of minter group id
|
||||||
if (blockchainHeight >= groupCheckHeight && level >= levelToMint && !myName.isEmpty() && isMember)
|
if (blockchainHeight >= groupCheckHeight && blockchainHeight < removeNameCheckHeight && level >= levelToMint && !myName.isEmpty() && isMember)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
// Can only mint if is member of minter group id
|
||||||
|
if (blockchainHeight >= removeNameCheckHeight && level >= levelToMint && isMember)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
// Founders needs to pass same tests like minters
|
// Founders needs to pass same tests like minters
|
||||||
@ -253,12 +258,19 @@ public class Account {
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (blockchainHeight >= groupCheckHeight &&
|
if (blockchainHeight >= groupCheckHeight &&
|
||||||
|
blockchainHeight < removeNameCheckHeight &&
|
||||||
Account.isFounder(accountData.getFlags()) &&
|
Account.isFounder(accountData.getFlags()) &&
|
||||||
accountData.getBlocksMintedPenalty() == 0 &&
|
accountData.getBlocksMintedPenalty() == 0 &&
|
||||||
!myName.isEmpty() &&
|
!myName.isEmpty() &&
|
||||||
isMember)
|
isMember)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
if (blockchainHeight >= removeNameCheckHeight &&
|
||||||
|
Account.isFounder(accountData.getFlags()) &&
|
||||||
|
accountData.getBlocksMintedPenalty() == 0 &&
|
||||||
|
isMember)
|
||||||
|
return true;
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,6 +71,7 @@ public class BlockChain {
|
|||||||
transactionV6Timestamp,
|
transactionV6Timestamp,
|
||||||
disableReferenceTimestamp,
|
disableReferenceTimestamp,
|
||||||
increaseOnlineAccountsDifficultyTimestamp,
|
increaseOnlineAccountsDifficultyTimestamp,
|
||||||
|
decreaseOnlineAccountsDifficultyTimestamp,
|
||||||
onlineAccountMinterLevelValidationHeight,
|
onlineAccountMinterLevelValidationHeight,
|
||||||
selfSponsorshipAlgoV1Height,
|
selfSponsorshipAlgoV1Height,
|
||||||
selfSponsorshipAlgoV2Height,
|
selfSponsorshipAlgoV2Height,
|
||||||
@ -85,6 +86,7 @@ public class BlockChain {
|
|||||||
disableRewardshareHeight,
|
disableRewardshareHeight,
|
||||||
enableRewardshareHeight,
|
enableRewardshareHeight,
|
||||||
onlyMintWithNameHeight,
|
onlyMintWithNameHeight,
|
||||||
|
removeOnlyMintWithNameHeight,
|
||||||
groupMemberCheckHeight
|
groupMemberCheckHeight
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -217,6 +219,10 @@ public class BlockChain {
|
|||||||
* featureTriggers because unit tests need to set this value via Reflection. */
|
* featureTriggers because unit tests need to set this value via Reflection. */
|
||||||
private long onlineAccountsModulusV2Timestamp;
|
private long onlineAccountsModulusV2Timestamp;
|
||||||
|
|
||||||
|
/** Feature trigger timestamp for ONLINE_ACCOUNTS_MODULUS time interval decrease. Can't use
|
||||||
|
* featureTriggers because unit tests need to set this value via Reflection. */
|
||||||
|
private long onlineAccountsModulusV3Timestamp;
|
||||||
|
|
||||||
/** Snapshot timestamp for self sponsorship algo V1 */
|
/** Snapshot timestamp for self sponsorship algo V1 */
|
||||||
private long selfSponsorshipAlgoV1SnapshotTimestamp;
|
private long selfSponsorshipAlgoV1SnapshotTimestamp;
|
||||||
|
|
||||||
@ -403,6 +409,10 @@ public class BlockChain {
|
|||||||
return this.onlineAccountsModulusV2Timestamp;
|
return this.onlineAccountsModulusV2Timestamp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public long getOnlineAccountsModulusV3Timestamp() {
|
||||||
|
return this.onlineAccountsModulusV3Timestamp;
|
||||||
|
}
|
||||||
|
|
||||||
/* Block reward batching */
|
/* Block reward batching */
|
||||||
public long getBlockRewardBatchStartHeight() {
|
public long getBlockRewardBatchStartHeight() {
|
||||||
return this.blockRewardBatchStartHeight;
|
return this.blockRewardBatchStartHeight;
|
||||||
@ -579,6 +589,10 @@ public class BlockChain {
|
|||||||
return this.featureTriggers.get(FeatureTrigger.increaseOnlineAccountsDifficultyTimestamp.name()).longValue();
|
return this.featureTriggers.get(FeatureTrigger.increaseOnlineAccountsDifficultyTimestamp.name()).longValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public long getDecreaseOnlineAccountsDifficultyTimestamp() {
|
||||||
|
return this.featureTriggers.get(FeatureTrigger.decreaseOnlineAccountsDifficultyTimestamp.name()).longValue();
|
||||||
|
}
|
||||||
|
|
||||||
public int getSelfSponsorshipAlgoV1Height() {
|
public int getSelfSponsorshipAlgoV1Height() {
|
||||||
return this.featureTriggers.get(FeatureTrigger.selfSponsorshipAlgoV1Height.name()).intValue();
|
return this.featureTriggers.get(FeatureTrigger.selfSponsorshipAlgoV1Height.name()).intValue();
|
||||||
}
|
}
|
||||||
@ -635,6 +649,10 @@ public class BlockChain {
|
|||||||
return this.featureTriggers.get(FeatureTrigger.onlyMintWithNameHeight.name()).intValue();
|
return this.featureTriggers.get(FeatureTrigger.onlyMintWithNameHeight.name()).intValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getRemoveOnlyMintWithNameHeight() {
|
||||||
|
return this.featureTriggers.get(FeatureTrigger.removeOnlyMintWithNameHeight.name()).intValue();
|
||||||
|
}
|
||||||
|
|
||||||
public int getGroupMemberCheckHeight() {
|
public int getGroupMemberCheckHeight() {
|
||||||
return this.featureTriggers.get(FeatureTrigger.groupMemberCheckHeight.name()).intValue();
|
return this.featureTriggers.get(FeatureTrigger.groupMemberCheckHeight.name()).intValue();
|
||||||
}
|
}
|
||||||
|
@ -44,6 +44,7 @@ public class OnlineAccountsManager {
|
|||||||
*/
|
*/
|
||||||
private static final long ONLINE_TIMESTAMP_MODULUS_V1 = 5 * 60 * 1000L;
|
private static final long ONLINE_TIMESTAMP_MODULUS_V1 = 5 * 60 * 1000L;
|
||||||
private static final long ONLINE_TIMESTAMP_MODULUS_V2 = 30 * 60 * 1000L;
|
private static final long ONLINE_TIMESTAMP_MODULUS_V2 = 30 * 60 * 1000L;
|
||||||
|
private static final long ONLINE_TIMESTAMP_MODULUS_V3 = 10 * 60 * 1000L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* How many 'current' timestamp-sets of online accounts we cache.
|
* How many 'current' timestamp-sets of online accounts we cache.
|
||||||
@ -67,12 +68,13 @@ public class OnlineAccountsManager {
|
|||||||
private static final long ONLINE_ACCOUNTS_COMPUTE_INITIAL_SLEEP_INTERVAL = 30 * 1000L; // ms
|
private static final long ONLINE_ACCOUNTS_COMPUTE_INITIAL_SLEEP_INTERVAL = 30 * 1000L; // ms
|
||||||
|
|
||||||
// MemoryPoW - mainnet
|
// MemoryPoW - mainnet
|
||||||
public static final int POW_BUFFER_SIZE = 1 * 1024 * 1024; // bytes
|
public static final int POW_BUFFER_SIZE = 1024 * 1024; // bytes
|
||||||
public static final int POW_DIFFICULTY_V1 = 18; // leading zero bits
|
public static final int POW_DIFFICULTY_V1 = 18; // leading zero bits
|
||||||
public static final int POW_DIFFICULTY_V2 = 19; // leading zero bits
|
public static final int POW_DIFFICULTY_V2 = 19; // leading zero bits
|
||||||
|
public static final int POW_DIFFICULTY_V3 = 6; // leading zero bits
|
||||||
|
|
||||||
// MemoryPoW - testnet
|
// MemoryPoW - testnet
|
||||||
public static final int POW_BUFFER_SIZE_TESTNET = 1 * 1024 * 1024; // bytes
|
public static final int POW_BUFFER_SIZE_TESTNET = 1024 * 1024; // bytes
|
||||||
public static final int POW_DIFFICULTY_TESTNET = 5; // leading zero bits
|
public static final int POW_DIFFICULTY_TESTNET = 5; // leading zero bits
|
||||||
|
|
||||||
// IMPORTANT: if we ever need to dynamically modify the buffer size using a feature trigger, the
|
// IMPORTANT: if we ever need to dynamically modify the buffer size using a feature trigger, the
|
||||||
@ -106,11 +108,15 @@ public class OnlineAccountsManager {
|
|||||||
|
|
||||||
public static long getOnlineTimestampModulus() {
|
public static long getOnlineTimestampModulus() {
|
||||||
Long now = NTP.getTime();
|
Long now = NTP.getTime();
|
||||||
if (now != null && now >= BlockChain.getInstance().getOnlineAccountsModulusV2Timestamp()) {
|
if (now != null && now >= BlockChain.getInstance().getOnlineAccountsModulusV2Timestamp() && now < BlockChain.getInstance().getOnlineAccountsModulusV3Timestamp()) {
|
||||||
return ONLINE_TIMESTAMP_MODULUS_V2;
|
return ONLINE_TIMESTAMP_MODULUS_V2;
|
||||||
}
|
}
|
||||||
|
if (now != null && now >= BlockChain.getInstance().getOnlineAccountsModulusV3Timestamp()) {
|
||||||
|
return ONLINE_TIMESTAMP_MODULUS_V3;
|
||||||
|
}
|
||||||
return ONLINE_TIMESTAMP_MODULUS_V1;
|
return ONLINE_TIMESTAMP_MODULUS_V1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Long getCurrentOnlineAccountTimestamp() {
|
public static Long getCurrentOnlineAccountTimestamp() {
|
||||||
Long now = NTP.getTime();
|
Long now = NTP.getTime();
|
||||||
if (now == null)
|
if (now == null)
|
||||||
@ -135,9 +141,12 @@ public class OnlineAccountsManager {
|
|||||||
if (Settings.getInstance().isTestNet())
|
if (Settings.getInstance().isTestNet())
|
||||||
return POW_DIFFICULTY_TESTNET;
|
return POW_DIFFICULTY_TESTNET;
|
||||||
|
|
||||||
if (timestamp >= BlockChain.getInstance().getIncreaseOnlineAccountsDifficultyTimestamp())
|
if (timestamp >= BlockChain.getInstance().getIncreaseOnlineAccountsDifficultyTimestamp() && timestamp < BlockChain.getInstance().getDecreaseOnlineAccountsDifficultyTimestamp())
|
||||||
return POW_DIFFICULTY_V2;
|
return POW_DIFFICULTY_V2;
|
||||||
|
|
||||||
|
if (timestamp >= BlockChain.getInstance().getDecreaseOnlineAccountsDifficultyTimestamp())
|
||||||
|
return POW_DIFFICULTY_V3;
|
||||||
|
|
||||||
return POW_DIFFICULTY_V1;
|
return POW_DIFFICULTY_V1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
"onlineAccountSignaturesMinLifetime": 43200000,
|
"onlineAccountSignaturesMinLifetime": 43200000,
|
||||||
"onlineAccountSignaturesMaxLifetime": 86400000,
|
"onlineAccountSignaturesMaxLifetime": 86400000,
|
||||||
"onlineAccountsModulusV2Timestamp": 1659801600000,
|
"onlineAccountsModulusV2Timestamp": 1659801600000,
|
||||||
|
"onlineAccountsModulusV3Timestamp": 9999999999999,
|
||||||
"selfSponsorshipAlgoV1SnapshotTimestamp": 1670230000000,
|
"selfSponsorshipAlgoV1SnapshotTimestamp": 1670230000000,
|
||||||
"selfSponsorshipAlgoV2SnapshotTimestamp": 1708360200000,
|
"selfSponsorshipAlgoV2SnapshotTimestamp": 1708360200000,
|
||||||
"selfSponsorshipAlgoV3SnapshotTimestamp": 1708432200000,
|
"selfSponsorshipAlgoV3SnapshotTimestamp": 1708432200000,
|
||||||
@ -95,6 +96,7 @@
|
|||||||
"transactionV6Timestamp": 9999999999999,
|
"transactionV6Timestamp": 9999999999999,
|
||||||
"disableReferenceTimestamp": 1655222400000,
|
"disableReferenceTimestamp": 1655222400000,
|
||||||
"increaseOnlineAccountsDifficultyTimestamp": 9999999999999,
|
"increaseOnlineAccountsDifficultyTimestamp": 9999999999999,
|
||||||
|
"decreaseOnlineAccountsDifficultyTimestamp": 9999999999999,
|
||||||
"onlineAccountMinterLevelValidationHeight": 1092000,
|
"onlineAccountMinterLevelValidationHeight": 1092000,
|
||||||
"selfSponsorshipAlgoV1Height": 1092400,
|
"selfSponsorshipAlgoV1Height": 1092400,
|
||||||
"selfSponsorshipAlgoV2Height": 1611200,
|
"selfSponsorshipAlgoV2Height": 1611200,
|
||||||
@ -109,6 +111,7 @@
|
|||||||
"disableRewardshareHeight": 1899100,
|
"disableRewardshareHeight": 1899100,
|
||||||
"enableRewardshareHeight": 1905100,
|
"enableRewardshareHeight": 1905100,
|
||||||
"onlyMintWithNameHeight": 1900300,
|
"onlyMintWithNameHeight": 1900300,
|
||||||
|
"removeOnlyMintWithNameHeight": 9999999,
|
||||||
"groupMemberCheckHeight": 1902700
|
"groupMemberCheckHeight": 1902700
|
||||||
},
|
},
|
||||||
"checkpoints": [
|
"checkpoints": [
|
||||||
|
Loading…
x
Reference in New Issue
Block a user