From 094ccdf1c93bd8ff85b2eaa4eb415b0917bd8301 Mon Sep 17 00:00:00 2001 From: Aayush Rajasekaran Date: Wed, 30 Oct 2019 17:09:42 -0400 Subject: [PATCH] Bugfix: RpcImpl should broadcast PoS blocks in submitsignature() --- .../src/org/aion/zero/impl/blockchain/AionImpl.java | 2 +- modAionImpl/src/org/aion/zero/impl/pow/AionPoW.java | 2 +- modApiServer/src/org/aion/api/server/rpc/ApiWeb3Aion.java | 2 +- modApiServer/src/org/aion/api/server/rpc2/RpcImpl.java | 8 ++++---- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/modAionImpl/src/org/aion/zero/impl/blockchain/AionImpl.java b/modAionImpl/src/org/aion/zero/impl/blockchain/AionImpl.java index 455d86fa20..cf9e23becb 100644 --- a/modAionImpl/src/org/aion/zero/impl/blockchain/AionImpl.java +++ b/modAionImpl/src/org/aion/zero/impl/blockchain/AionImpl.java @@ -74,7 +74,7 @@ public UnityChain getBlockchain() { return aionHub.getBlockchain(); } - public synchronized ImportResult addNewMinedBlock(AionBlock block) { + public synchronized ImportResult addNewBlock(Block block) { ImportResult importResult = this.aionHub.getBlockchain().tryToConnect(block); if (importResult == ImportResult.IMPORTED_BEST) { diff --git a/modAionImpl/src/org/aion/zero/impl/pow/AionPoW.java b/modAionImpl/src/org/aion/zero/impl/pow/AionPoW.java index a832dfc9e4..ebba891577 100644 --- a/modAionImpl/src/org/aion/zero/impl/pow/AionPoW.java +++ b/modAionImpl/src/org/aion/zero/impl/pow/AionPoW.java @@ -215,7 +215,7 @@ protected synchronized void processSolution(AionPowSolution solution) { } // This can be improved - ImportResult importResult = AionImpl.inst().addNewMinedBlock(block); + ImportResult importResult = AionImpl.inst().addNewBlock(block); // Check that the new block was successfully added if (importResult.isSuccessful()) { diff --git a/modApiServer/src/org/aion/api/server/rpc/ApiWeb3Aion.java b/modApiServer/src/org/aion/api/server/rpc/ApiWeb3Aion.java index 4f1afe88e6..81f2160d84 100644 --- a/modApiServer/src/org/aion/api/server/rpc/ApiWeb3Aion.java +++ b/modApiServer/src/org/aion/api/server/rpc/ApiWeb3Aion.java @@ -2647,7 +2647,7 @@ public RpcMsg stratum_submitblock(Object _params) { // Directly submit to chain for new due to delays using event, explore event // submission again - ImportResult importResult = AionImpl.inst().addNewMinedBlock(bestBlock); + ImportResult importResult = AionImpl.inst().addNewBlock(bestBlock); if (importResult.isSuccessful()) { templateMap.remove(key); LOG.info( diff --git a/modApiServer/src/org/aion/api/server/rpc2/RpcImpl.java b/modApiServer/src/org/aion/api/server/rpc2/RpcImpl.java index 555deb9838..f9f84b2f3f 100644 --- a/modApiServer/src/org/aion/api/server/rpc2/RpcImpl.java +++ b/modApiServer/src/org/aion/api/server/rpc2/RpcImpl.java @@ -5,16 +5,16 @@ import org.aion.api.server.rpc2.autogen.errors.NullReturnRpcException; import org.aion.log.AionLoggerFactory; import org.aion.log.LogEnum; -import org.aion.zero.impl.blockchain.IAionChain; +import org.aion.zero.impl.blockchain.AionImpl; import org.aion.zero.impl.core.ImportResult; import org.aion.zero.impl.types.StakingBlock; import org.aion.zero.impl.types.StakingBlockHeader; public class RpcImpl implements Rpc { - private IAionChain ac; + private AionImpl ac; - RpcImpl(final IAionChain aionChain) { + RpcImpl(final AionImpl aionChain) { if (aionChain == null) { throw new NullPointerException("RpcImpl construct aionChain is null"); } @@ -104,7 +104,7 @@ public boolean submitsignature(byte[] signature, byte[] sealhash) throws NullRet } block.seal(signature, block.getHeader().getSigningPublicKey()); - ImportResult result = ac.getBlockchain().tryToConnect(block); + ImportResult result = ac.addNewBlock(block); boolean sealed = (result == ImportResult.IMPORTED_BEST || result == ImportResult.IMPORTED_NOT_BEST); if (sealed) {