From 302428f1d1bef18ca06d9c4dc77591e8b20ddccd Mon Sep 17 00:00:00 2001 From: CalDescent Date: Tue, 28 Dec 2021 12:01:03 +0000 Subject: [PATCH] Exclude RAW_DATA arbitrary transactions from various arbitrary data controller methods. --- .../arbitrary/ArbitraryDataStorageManager.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataStorageManager.java b/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataStorageManager.java index c7ebfbbd..bd686355 100644 --- a/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataStorageManager.java +++ b/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataStorageManager.java @@ -112,6 +112,11 @@ public class ArbitraryDataStorageManager extends Thread { public boolean canStoreData(ArbitraryTransactionData arbitraryTransactionData) { String name = arbitraryTransactionData.getName(); + // We already have RAW_DATA on chain, so we only need to store data associated with hashes + if (arbitraryTransactionData.getDataType() != ArbitraryTransactionData.DataType.DATA_HASH) { + return false; + } + // Don't store data unless it's an allowed type (public/private) if (!this.isDataTypeAllowed(arbitraryTransactionData)) { return false; @@ -148,6 +153,11 @@ public class ArbitraryDataStorageManager extends Thread { public boolean shouldPreFetchData(Repository repository, ArbitraryTransactionData arbitraryTransactionData) { String name = arbitraryTransactionData.getName(); + // Only fetch data associated with hashes, as we already have RAW_DATA + if (arbitraryTransactionData.getDataType() != ArbitraryTransactionData.DataType.DATA_HASH) { + return false; + } + // Don't fetch anything more if we're (nearly) out of space // Make sure to keep STORAGE_FULL_THRESHOLD considerably less than 1, to // avoid a fetch/delete loop