diff --git a/WindowsInstaller/Qortal.aip b/WindowsInstaller/Qortal.aip index 1f869dcd..d9b958e1 100755 --- a/WindowsInstaller/Qortal.aip +++ b/WindowsInstaller/Qortal.aip @@ -17,10 +17,10 @@ - + - + @@ -212,7 +212,7 @@ - + diff --git a/pom.xml b/pom.xml index 3bfb07fa..80892009 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.qortal qortal - 2.1.1 + 2.1.2 jar true diff --git a/src/main/java/org/qortal/api/resource/BlocksResource.java b/src/main/java/org/qortal/api/resource/BlocksResource.java index b8163c7d..bcd531d4 100644 --- a/src/main/java/org/qortal/api/resource/BlocksResource.java +++ b/src/main/java/org/qortal/api/resource/BlocksResource.java @@ -75,7 +75,8 @@ public class BlocksResource { @ApiErrors({ ApiError.INVALID_SIGNATURE, ApiError.BLOCK_UNKNOWN, ApiError.REPOSITORY_ISSUE }) - public BlockData getBlock(@PathParam("signature") String signature58) { + public BlockData getBlock(@PathParam("signature") String signature58, + @QueryParam("includeOnlineSignatures") Boolean includeOnlineSignatures) { // Decode signature byte[] signature; try { @@ -88,12 +89,18 @@ public class BlocksResource { // Check the database first BlockData blockData = repository.getBlockRepository().fromSignature(signature); if (blockData != null) { + if (includeOnlineSignatures == null || includeOnlineSignatures == false) { + blockData.setOnlineAccountsSignatures(null); + } return blockData; } // Not found, so try the block archive blockData = repository.getBlockArchiveRepository().fromSignature(signature); if (blockData != null) { + if (includeOnlineSignatures == null || includeOnlineSignatures == false) { + blockData.setOnlineAccountsSignatures(null); + } return blockData; } @@ -423,17 +430,24 @@ public class BlocksResource { @ApiErrors({ ApiError.BLOCK_UNKNOWN, ApiError.REPOSITORY_ISSUE }) - public BlockData getByHeight(@PathParam("height") int height) { + public BlockData getByHeight(@PathParam("height") int height, + @QueryParam("includeOnlineSignatures") Boolean includeOnlineSignatures) { try (final Repository repository = RepositoryManager.getRepository()) { // Firstly check the database BlockData blockData = repository.getBlockRepository().fromHeight(height); if (blockData != null) { + if (includeOnlineSignatures == null || includeOnlineSignatures == false) { + blockData.setOnlineAccountsSignatures(null); + } return blockData; } // Not found, so try the archive blockData = repository.getBlockArchiveRepository().fromHeight(height); if (blockData != null) { + if (includeOnlineSignatures == null || includeOnlineSignatures == false) { + blockData.setOnlineAccountsSignatures(null); + } return blockData; } diff --git a/src/main/java/org/qortal/controller/Controller.java b/src/main/java/org/qortal/controller/Controller.java index 185804e9..2e78a42b 100644 --- a/src/main/java/org/qortal/controller/Controller.java +++ b/src/main/java/org/qortal/controller/Controller.java @@ -89,6 +89,7 @@ public class Controller extends Thread { static { // This must go before any calls to LogManager/Logger + System.setProperty("log4j2.formatMsgNoLookups", "true"); System.setProperty("java.util.logging.manager", "org.apache.logging.log4j.jul.LogManager"); } diff --git a/src/main/java/org/qortal/data/block/BlockData.java b/src/main/java/org/qortal/data/block/BlockData.java index e2d6bad1..61d1a7fb 100644 --- a/src/main/java/org/qortal/data/block/BlockData.java +++ b/src/main/java/org/qortal/data/block/BlockData.java @@ -207,6 +207,10 @@ public class BlockData implements Serializable { return this.onlineAccountsSignatures; } + public void setOnlineAccountsSignatures(byte[] onlineAccountsSignatures) { + this.onlineAccountsSignatures = onlineAccountsSignatures; + } + public boolean isTrimmed() { long onlineAccountSignaturesTrimmedTimestamp = NTP.getTime() - BlockChain.getInstance().getOnlineAccountSignaturesMaxLifetime(); long currentTrimmableTimestamp = NTP.getTime() - Settings.getInstance().getAtStatesMaxLifetime(); diff --git a/src/test/java/org/qortal/test/api/BlockApiTests.java b/src/test/java/org/qortal/test/api/BlockApiTests.java index 5b8721af..6415880a 100644 --- a/src/test/java/org/qortal/test/api/BlockApiTests.java +++ b/src/test/java/org/qortal/test/api/BlockApiTests.java @@ -40,7 +40,7 @@ public class BlockApiTests extends ApiCommon { byte[] signatureBytes = GenesisBlock.getInstance(repository).getSignature(); String signature = Base58.encode(signatureBytes); - assertNotNull(this.blocksResource.getBlock(signature)); + assertNotNull(this.blocksResource.getBlock(signature, true)); } } @@ -72,7 +72,7 @@ public class BlockApiTests extends ApiCommon { @Test public void testGetBlockByHeight() { - assertNotNull(this.blocksResource.getByHeight(1)); + assertNotNull(this.blocksResource.getByHeight(1, true)); } @Test