From 747b1a4f9de3e3c126fde60082b00f10de817d3e Mon Sep 17 00:00:00 2001
From: AlphaX-Projects <77661270+AlphaX-Projects@users.noreply.github.com>
Date: Wed, 17 Jan 2024 17:28:27 +0100
Subject: [PATCH 1/4] Update dependencies
---
pom.xml | 8 ++++----
.../org/qortal/account/SelfSponsorshipAlgoV1.java | 15 +++++++++++----
src/main/java/org/qortal/block/Block.java | 9 +++++----
.../qortal/block/SelfSponsorshipAlgoV1Block.java | 3 +--
4 files changed, 21 insertions(+), 14 deletions(-)
diff --git a/pom.xml b/pom.xml
index 4f2304bd..42177e54 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,7 +21,7 @@
1.2.2
0.12.3
4.9.10
- 1.60.1
+ 1.61.0
33.0.0-jre
2.2
1.2.1
@@ -34,16 +34,16 @@
9.4.53.v20231009
1.1.1
20231013
- 1.17.1
+ 1.17.2
5.10.0
1.0.0
- 2.22.0
+ 2.22.1
1.5.0-b01
3.12.1
3.3.0
3.3.1
3.5.1
- 3.2.3
+ 3.2.5
1.1.0
UTF-8
3.25.1
diff --git a/src/main/java/org/qortal/account/SelfSponsorshipAlgoV1.java b/src/main/java/org/qortal/account/SelfSponsorshipAlgoV1.java
index 725e53f5..2ed57f34 100644
--- a/src/main/java/org/qortal/account/SelfSponsorshipAlgoV1.java
+++ b/src/main/java/org/qortal/account/SelfSponsorshipAlgoV1.java
@@ -2,6 +2,7 @@ package org.qortal.account;
import org.qortal.api.resource.TransactionsResource;
import org.qortal.asset.Asset;
+import org.qortal.block.BlockChain;
import org.qortal.data.account.AccountData;
import org.qortal.data.naming.NameData;
import org.qortal.data.transaction.*;
@@ -26,6 +27,7 @@ public class SelfSponsorshipAlgoV1 {
private int consolidationCount = 0;
private int bulkIssuanceCount = 0;
private int recentSponsorshipCount = 0;
+ private int transferAssetsCount = 0;
private List sponsorshipRewardShares = new ArrayList<>();
private final Map> paymentsByAddress = new HashMap<>();
@@ -33,6 +35,7 @@ public class SelfSponsorshipAlgoV1 {
private Set consolidatedAddresses = new LinkedHashSet<>();
private final Set zeroTransactionAddreses = new LinkedHashSet<>();
private final Set penaltyAddresses = new LinkedHashSet<>();
+ private final Set transferAssetsByAddress = new LinkedHashSet<>();
public SelfSponsorshipAlgoV1(Repository repository, String address, long snapshotTimestamp, boolean override) throws DataException {
this.repository = repository;
@@ -67,6 +70,7 @@ public class SelfSponsorshipAlgoV1 {
this.findBulkIssuance();
this.findRegisteredNameCount();
this.findRecentSponsorshipCount();
+ this.transferAssetsCount = this.transferAssetsByAddress.size();
int score = this.calculateScore();
if (score <= 0 && !override) {
@@ -221,7 +225,9 @@ public class SelfSponsorshipAlgoV1 {
}
private void findRecentSponsorshipCount() {
- final long referenceTimestamp = this.snapshotTimestamp - (365 * 24 * 60 * 60 * 1000L);
+ long snapshotTimestampBefore = BlockChain.getInstance().getSelfSponsorshipAlgoV1SnapshotTimestamp();
+ long diffTimeBetween = this.snapshotTimestamp - snapshotTimestampBefore;
+ final long referenceTimestamp = this.snapshotTimestamp - diffTimeBetween;
int recentSponsorshipCount = 0;
for (RewardShareTransactionData rewardShare : sponsorshipRewardShares) {
if (rewardShare.getTimestamp() >= referenceTimestamp) {
@@ -232,12 +238,13 @@ public class SelfSponsorshipAlgoV1 {
}
private int calculateScore() {
+ final int transferAssetsMultiplier = (this.transferAssetsCount >= 5) ? 10 : 1;
final int suspiciousMultiplier = (this.suspiciousCount >= 100) ? this.suspiciousPercent : 1;
final int nameMultiplier = (this.sponsees.size() >= 50 && this.registeredNameCount == 0) ? 2 : 1;
final int consolidationMultiplier = Math.max(this.consolidationCount, 1);
final int bulkIssuanceMultiplier = Math.max(this.bulkIssuanceCount / 2, 1);
final int offset = 9;
- return suspiciousMultiplier * nameMultiplier * consolidationMultiplier * bulkIssuanceMultiplier - offset;
+ return transferAssetsMultiplier * suspiciousMultiplier * nameMultiplier * consolidationMultiplier * bulkIssuanceMultiplier - offset;
}
private void fetchSponsorshipRewardShares() throws DataException {
@@ -322,6 +329,7 @@ public class SelfSponsorshipAlgoV1 {
if (!Objects.equals(transferAssetTransactionData.getRecipient(), address)) {
// Outgoing payment from this account
outgoingPaymentRecipients.add(transferAssetTransactionData.getRecipient());
+ this.transferAssetsByAddress.add(transferAssetTransactionData.getRecipient());
}
}
break;
@@ -363,5 +371,4 @@ public class SelfSponsorshipAlgoV1 {
return transactionDataList;
}
-
-}
+}
\ No newline at end of file
diff --git a/src/main/java/org/qortal/block/Block.java b/src/main/java/org/qortal/block/Block.java
index af99e34e..475de70a 100644
--- a/src/main/java/org/qortal/block/Block.java
+++ b/src/main/java/org/qortal/block/Block.java
@@ -1548,12 +1548,14 @@ public class Block {
processBlockRewards();
}
- if (this.blockData.getHeight() == 212937)
+ if (this.blockData.getHeight() == 212937) {
// Apply fix for block 212937
Block212937.processFix(this);
+ }
- else if (this.blockData.getHeight() == BlockChain.getInstance().getSelfSponsorshipAlgoV1Height())
+ if (this.blockData.getHeight() == BlockChain.getInstance().getUnconfirmableRewardSharesHeight()) {
SelfSponsorshipAlgoV1Block.processAccountPenalties(this);
+ }
}
// We're about to (test-)process a batch of transactions,
@@ -2542,5 +2544,4 @@ public class Block {
LOGGER.info(() -> String.format("Unable to log block debugging info: %s", e.getMessage()));
}
}
-
-}
+}
\ No newline at end of file
diff --git a/src/main/java/org/qortal/block/SelfSponsorshipAlgoV1Block.java b/src/main/java/org/qortal/block/SelfSponsorshipAlgoV1Block.java
index c3c374d1..cea97593 100644
--- a/src/main/java/org/qortal/block/SelfSponsorshipAlgoV1Block.java
+++ b/src/main/java/org/qortal/block/SelfSponsorshipAlgoV1Block.java
@@ -64,7 +64,7 @@ public final class SelfSponsorshipAlgoV1Block {
}
public static Set getAccountPenalties(Repository repository, int penalty) throws DataException {
- final long snapshotTimestamp = BlockChain.getInstance().getSelfSponsorshipAlgoV1SnapshotTimestamp();
+ final long snapshotTimestamp = System.currentTimeMillis() - 10000;
Set penalties = new LinkedHashSet<>();
List addresses = repository.getTransactionRepository().getConfirmedRewardShareCreatorsExcludingSelfShares();
for (String address : addresses) {
@@ -132,5 +132,4 @@ public final class SelfSponsorshipAlgoV1Block {
Collections.sort(penaltyAddresses);
return Base58.encode(Crypto.digest(StringUtils.join(penaltyAddresses).getBytes(StandardCharsets.UTF_8)));
}
-
}
From 140f14f2f4ca5e6b19a50b8a11d277b5cdf1a08b Mon Sep 17 00:00:00 2001
From: AlphaX-Projects <77661270+AlphaX-Projects@users.noreply.github.com>
Date: Wed, 17 Jan 2024 17:49:05 +0100
Subject: [PATCH 2/4] Set exclude reward share transactions blockheight
---
src/main/resources/blockchain.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/main/resources/blockchain.json b/src/main/resources/blockchain.json
index 23e43285..8631fbf4 100644
--- a/src/main/resources/blockchain.json
+++ b/src/main/resources/blockchain.json
@@ -96,7 +96,7 @@
"feeValidationFixTimestamp": 1671918000000,
"chatReferenceTimestamp": 1674316800000,
"arbitraryOptionalFeeTimestamp": 1680278400000,
- "unconfirmableRewardSharesHeight": 99999500
+ "unconfirmableRewardSharesHeight": 1575500
},
"checkpoints": [
{ "height": 1136300, "signature": "3BbwawEF2uN8Ni5ofpJXkukoU8ctAPxYoFB7whq9pKfBnjfZcpfEJT4R95NvBDoTP8WDyWvsUvbfHbcr9qSZuYpSKZjUQTvdFf6eqznHGEwhZApWfvXu6zjGCxYCp65F4jsVYYJjkzbjmkCg5WAwN5voudngA23kMK6PpTNygapCzXt" }
From 867fe764ca610b29a62258607ebcb476122a2ce5 Mon Sep 17 00:00:00 2001
From: AlphaX-Projects <77661270+AlphaX-Projects@users.noreply.github.com>
Date: Wed, 17 Jan 2024 17:50:22 +0100
Subject: [PATCH 3/4] Bump version to 4.4.2
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 42177e54..a17fd5e3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
org.qortal
qortal
- 4.4.1
+ 4.4.2
jar
true
From b75c2029ac973574c18222ec2ceb63d36762938b Mon Sep 17 00:00:00 2001
From: AlphaX-Projects <77661270+AlphaX-Projects@users.noreply.github.com>
Date: Sun, 21 Jan 2024 14:23:46 +0100
Subject: [PATCH 4/4] Out of Service
---
src/main/java/org/qortal/crosschain/Digibyte.java | 4 ----
src/main/java/org/qortal/crosschain/Dogecoin.java | 4 ----
src/main/java/org/qortal/crosschain/Litecoin.java | 4 ----
src/main/java/org/qortal/crosschain/PirateChain.java | 5 -----
src/main/java/org/qortal/crosschain/Ravencoin.java | 4 ----
src/main/java/org/qortal/settings/Settings.java | 3 +--
6 files changed, 1 insertion(+), 23 deletions(-)
diff --git a/src/main/java/org/qortal/crosschain/Digibyte.java b/src/main/java/org/qortal/crosschain/Digibyte.java
index bda6c18d..9d9f2171 100644
--- a/src/main/java/org/qortal/crosschain/Digibyte.java
+++ b/src/main/java/org/qortal/crosschain/Digibyte.java
@@ -46,10 +46,6 @@ public class Digibyte extends Bitcoiny {
// Servers chosen on NO BASIS WHATSOEVER from various sources!
// Status verified at https://1209k.com/bitcoin-eye/ele.php?chain=dgb
new Server("electrum.qortal.link", Server.ConnectionType.SSL, 55002),
- new Server("electrum1-dgb.qortal.online", Server.ConnectionType.SSL, 50002),
- new Server("electrum2-dgb.qortal.online", Server.ConnectionType.SSL, 50002),
- new Server("electrum3-dgb.qortal.online", Server.ConnectionType.SSL, 40002),
- new Server("electrum4-dgb.qortal.online", Server.ConnectionType.SSL, 40002),
new Server("electrum1.cipig.net", Server.ConnectionType.SSL, 20059),
new Server("electrum2.cipig.net", Server.ConnectionType.SSL, 20059),
new Server("electrum3.cipig.net", Server.ConnectionType.SSL, 20059)
diff --git a/src/main/java/org/qortal/crosschain/Dogecoin.java b/src/main/java/org/qortal/crosschain/Dogecoin.java
index c687ca60..433f115a 100644
--- a/src/main/java/org/qortal/crosschain/Dogecoin.java
+++ b/src/main/java/org/qortal/crosschain/Dogecoin.java
@@ -46,10 +46,6 @@ public class Dogecoin extends Bitcoiny {
// Servers chosen on NO BASIS WHATSOEVER from various sources!
// Status verified at https://1209k.com/bitcoin-eye/ele.php?chain=doge
new Server("electrum.qortal.link", Server.ConnectionType.SSL, 54002),
- new Server("electrum1-doge.qortal.online", Server.ConnectionType.SSL, 50002),
- new Server("electrum2-doge.qortal.online", Server.ConnectionType.SSL, 50002),
- new Server("electrum3-doge.qortal.online", Server.ConnectionType.SSL, 30002),
- new Server("electrum4-doge.qortal.online", Server.ConnectionType.SSL, 30002),
new Server("electrum1.cipig.net", Server.ConnectionType.SSL, 20060),
new Server("electrum2.cipig.net", Server.ConnectionType.SSL, 20060),
new Server("electrum3.cipig.net", Server.ConnectionType.SSL, 20060)
diff --git a/src/main/java/org/qortal/crosschain/Litecoin.java b/src/main/java/org/qortal/crosschain/Litecoin.java
index d87cd1a1..596935ba 100644
--- a/src/main/java/org/qortal/crosschain/Litecoin.java
+++ b/src/main/java/org/qortal/crosschain/Litecoin.java
@@ -46,10 +46,6 @@ public class Litecoin extends Bitcoiny {
// Servers chosen on NO BASIS WHATSOEVER from various sources!
// Status verified at https://1209k.com/bitcoin-eye/ele.php?chain=ltc
new Server("electrum.qortal.link", Server.ConnectionType.SSL, 50002),
- new Server("electrum1-ltc.qortal.online", Server.ConnectionType.SSL, 50002),
- new Server("electrum2-ltc.qortal.online", Server.ConnectionType.SSL, 50002),
- new Server("electrum3-ltc.qortal.online", Server.ConnectionType.SSL, 20002),
- new Server("electrum4-ltc.qortal.online", Server.ConnectionType.SSL, 20002),
new Server("backup.electrum-ltc.org", Server.ConnectionType.SSL, 443),
new Server("electrum.ltc.xurious.com", Server.ConnectionType.SSL, 50002),
new Server("electrum-ltc.petrkr.net", Server.ConnectionType.SSL, 60002),
diff --git a/src/main/java/org/qortal/crosschain/PirateChain.java b/src/main/java/org/qortal/crosschain/PirateChain.java
index 3f3cba47..434932d1 100644
--- a/src/main/java/org/qortal/crosschain/PirateChain.java
+++ b/src/main/java/org/qortal/crosschain/PirateChain.java
@@ -51,11 +51,6 @@ public class PirateChain extends Bitcoiny {
public Collection getServers() {
return Arrays.asList(
// Servers chosen on NO BASIS WHATSOEVER from various sources!
- new Server("wallet-arrr1.qortal.online", Server.ConnectionType.SSL, 443),
- new Server("wallet-arrr2.qortal.online", Server.ConnectionType.SSL, 443),
- new Server("wallet-arrr3.qortal.online", Server.ConnectionType.SSL, 443),
- new Server("wallet-arrr4.qortal.online", Server.ConnectionType.SSL, 443),
- new Server("wallet-arrr5.qortal.online", Server.ConnectionType.SSL, 443),
new Server("lightd.pirate.black", Server.ConnectionType.SSL, 443)
);
}
diff --git a/src/main/java/org/qortal/crosschain/Ravencoin.java b/src/main/java/org/qortal/crosschain/Ravencoin.java
index d9301f48..9adb1a06 100644
--- a/src/main/java/org/qortal/crosschain/Ravencoin.java
+++ b/src/main/java/org/qortal/crosschain/Ravencoin.java
@@ -46,10 +46,6 @@ public class Ravencoin extends Bitcoiny {
// Servers chosen on NO BASIS WHATSOEVER from various sources!
// Status verified at https://1209k.com/bitcoin-eye/ele.php?chain=rvn
new Server("electrum.qortal.link", Server.ConnectionType.SSL, 56002),
- new Server("electrum1-rvn.qortal.online", Server.ConnectionType.SSL, 50002),
- new Server("electrum2-rvn.qortal.online", Server.ConnectionType.SSL, 50002),
- new Server("electrum3-rvn.qortal.online", Server.ConnectionType.SSL, 50002),
- new Server("electrum4-rvn.qortal.online", Server.ConnectionType.SSL, 50002),
new Server("electrum1.cipig.net", Server.ConnectionType.SSL, 20051),
new Server("electrum2.cipig.net", Server.ConnectionType.SSL, 20051),
new Server("electrum3.cipig.net", Server.ConnectionType.SSL, 20051),
diff --git a/src/main/java/org/qortal/settings/Settings.java b/src/main/java/org/qortal/settings/Settings.java
index 533e1639..973be319 100644
--- a/src/main/java/org/qortal/settings/Settings.java
+++ b/src/main/java/org/qortal/settings/Settings.java
@@ -272,8 +272,7 @@ public class Settings {
private String[] bootstrapHosts = new String[] {
"http://bootstrap.qortal.org",
"http://bootstrap2.qortal.org",
- "http://bootstrap3.qortal.org",
- "http://bootstrap.qortal.online"
+ "http://bootstrap3.qortal.org"
};
// Auto-update sources