diff --git a/modAionImpl/src/org/aion/zero/impl/types/AionBlock.java b/modAionImpl/src/org/aion/zero/impl/types/AionBlock.java index 6aed5896bc..0ef8dcb95f 100644 --- a/modAionImpl/src/org/aion/zero/impl/types/AionBlock.java +++ b/modAionImpl/src/org/aion/zero/impl/types/AionBlock.java @@ -456,4 +456,8 @@ public void updateHeaderDifficulty(byte[] diff) { .withDifficulty(diff) .build(); } + + public boolean notSealed() { + return Arrays.equals(header.getSolution(), new byte[A0BlockHeader.SOLUTIONSIZE]) && Arrays.equals(header.getNonce(), ByteUtil.EMPTY_WORD); + } } diff --git a/modApiServer/src/org/aion/api/server/rpc/ApiWeb3Aion.java b/modApiServer/src/org/aion/api/server/rpc/ApiWeb3Aion.java index 25e24798c2..9d6e85f62d 100644 --- a/modApiServer/src/org/aion/api/server/rpc/ApiWeb3Aion.java +++ b/modApiServer/src/org/aion/api/server/rpc/ApiWeb3Aion.java @@ -2612,7 +2612,7 @@ public RpcMsg stratum_submitblock(Object _params) { && !JSONObject.NULL.equals(hdrHash)) { // Grab copy of best block AionBlock bestBlock = ac.getBlockchain().getCachingMiningBlockTemplate(hexStringToBytes((String) hdrHash)); - if (bestBlock != null) { + if (bestBlock != null && bestBlock.notSealed()) { try { bestBlock.seal(hexStringToBytes(nce + ""), hexStringToBytes(soln + "")); } catch (Exception e) {