From 26c05ec214743fb1ae170b27112c7bf8388c90ce Mon Sep 17 00:00:00 2001 From: shaozhuguang Date: Mon, 29 Jun 2020 15:02:50 +0800 Subject: [PATCH] modify method of get topology from bft-smart server --- .../service/BftsmartConsensusManageService.java | 16 +++++++--------- .../bftsmart/service/BftsmartNodeServer.java | 3 +++ .../gateway/service/PeerConnectionManager.java | 2 +- .../peer/web/ManagementController.java | 5 ----- .../service/PeerBlockchainServiceFactory.java | 9 --------- 5 files changed, 11 insertions(+), 24 deletions(-) diff --git a/source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/service/BftsmartConsensusManageService.java b/source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/service/BftsmartConsensusManageService.java index ca07c0b9..f7b9981a 100644 --- a/source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/service/BftsmartConsensusManageService.java +++ b/source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/service/BftsmartConsensusManageService.java @@ -40,23 +40,21 @@ public class BftsmartConsensusManageService implements ConsensusManageService { @Override public BftsmartClientIncomingSettings authClientIncoming(ClientIdentification authId) { if (verify(authId)) { - byte[] topology = BinarySerializeUtils.serialize(nodeServer.getTopology()); - byte[] tomConfig = BinarySerializeUtils.serialize(nodeServer.getTomConfig()); + BftsmartTopology topology = nodeServer.getTopology(); + if (topology == null) { + throw new IllegalStateException("Topology still not created !!!"); + } - LOGGER.info("topology:{}, tomConfig:{}", topology == null ? 0 : topology.length, - tomConfig == null ? 0: tomConfig.length); + byte[] topologyBytes = BinarySerializeUtils.serialize(topology); + LOGGER.info("Topology = {}", topologyBytes == null ? 0 : topologyBytes.length); BftsmartClientIncomingConfig clientIncomingSettings = new BftsmartClientIncomingConfig(); - clientIncomingSettings - .setTopology(BinarySerializeUtils.serialize(nodeServer.getTopology())); - + .setTopology(BinarySerializeUtils.serialize(topology)); clientIncomingSettings .setTomConfig(BinarySerializeUtils.serialize(nodeServer.getTomConfig())); - clientIncomingSettings .setConsensusSettings(nodeServer.getConsensusSetting()); - clientIncomingSettings.setPubKey(authId.getPubKey()); // compute gateway id authLock.lock(); diff --git a/source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/service/BftsmartNodeServer.java b/source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/service/BftsmartNodeServer.java index 3db5546b..5698f2c2 100644 --- a/source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/service/BftsmartNodeServer.java +++ b/source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/service/BftsmartNodeServer.java @@ -194,6 +194,9 @@ public class BftsmartNodeServer extends DefaultRecoverable implements NodeServer } public BftsmartTopology getTopology() { + if (!isRunning()) { + return null; + } if (outerTopology != null) { return outerTopology; } diff --git a/source/gateway/src/main/java/com/jd/blockchain/gateway/service/PeerConnectionManager.java b/source/gateway/src/main/java/com/jd/blockchain/gateway/service/PeerConnectionManager.java index 034fdcc8..af4826cd 100644 --- a/source/gateway/src/main/java/com/jd/blockchain/gateway/service/PeerConnectionManager.java +++ b/source/gateway/src/main/java/com/jd/blockchain/gateway/service/PeerConnectionManager.java @@ -145,7 +145,7 @@ public class PeerConnectionManager implements PeerService, PeerConnector { LOGGER.error("Peer connect fail {}", peerAddress); } } catch (Exception e) { - LOGGER.error("Peer connect fail {}", peerAddress); + LOGGER.error(String.format("Peer connect fail %s", peerAddress), e); } } } diff --git a/source/peer/src/main/java/com/jd/blockchain/peer/web/ManagementController.java b/source/peer/src/main/java/com/jd/blockchain/peer/web/ManagementController.java index 75b0fe30..a018bd85 100644 --- a/source/peer/src/main/java/com/jd/blockchain/peer/web/ManagementController.java +++ b/source/peer/src/main/java/com/jd/blockchain/peer/web/ManagementController.java @@ -159,13 +159,9 @@ public class ManagementController implements LedgerBindingConfigAware, PeerManag List ledgerIncomingList = new ArrayList(); for (HashDigest ledgerHash : ledgerPeers.keySet()) { - NodeServer peer = ledgerPeers.get(ledgerHash); - String peerProviderName = peer.getProviderName(); - ConsensusProvider provider = ConsensusProviders.getProvider(peer.getProviderName()); - ClientIncomingSettings clientIncomingSettings = null; for (ClientIdentification authId : identificationArray) { if (authId.getProviderName() == null || @@ -188,7 +184,6 @@ public class ManagementController implements LedgerBindingConfigAware, PeerManag byte[] clientIncomingBytes = provider.getSettingsFactory().getIncomingSettingsEncoder() .encode(clientIncomingSettings); String base64ClientIncomingSettings = ByteArray.toBase64(clientIncomingBytes); - LedgerIncomingSetting ledgerIncomingSetting = new LedgerIncomingSetting(); ledgerIncomingSetting.setLedgerHash(ledgerHash); ledgerIncomingSetting.setCryptoSetting(ledgerCryptoSettings.get(ledgerHash)); diff --git a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/PeerBlockchainServiceFactory.java b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/PeerBlockchainServiceFactory.java index e63f092a..3bb613a5 100644 --- a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/PeerBlockchainServiceFactory.java +++ b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/PeerBlockchainServiceFactory.java @@ -91,22 +91,17 @@ public class PeerBlockchainServiceFactory implements BlockchainServiceFactory, C * @return 区块链服务工厂实例; */ public synchronized static PeerBlockchainServiceFactory connect(AsymmetricKeypair gatewayKey, NetworkAddress peerAddr, List peerProviders) { - if (peerProviders == null || peerProviders.isEmpty()) { throw new AuthenticationException("No peer Provider was set!"); } ClientIdentificationsProvider authIdProvider = authIdProvider(gatewayKey, peerProviders); - GatewayIncomingSetting incomingSetting = auth(peerAddr, authIdProvider); - if (incomingSetting == null) { throw new AuthenticationException("No peer was succeed authenticating from!"); } PeerBlockchainServiceFactory factory = null; - ServiceConnectionManager httpConnectionManager; - PeerManageService peerManageService; if (peerBlockchainServiceFactories.containsKey(peerAddr)) { @@ -164,16 +159,13 @@ public class PeerBlockchainServiceFactory implements BlockchainServiceFactory, C TransactionService autoSigningTxProcService = enableGatewayAutoSigning(gatewayKey, ledgerSetting.getCryptoSetting(), consensusClient); - LedgerAccessContextImpl accCtx = new LedgerAccessContextImpl(); accCtx.ledgerHash = ledgerSetting.getLedgerHash(); accCtx.cryptoSetting = ledgerSetting.getCryptoSetting(); accCtx.queryService = queryService; accCtx.txProcService = autoSigningTxProcService; accCtx.consensusClient = consensusClient; - accessAbleLedgers[i] = accCtx; - tempAccessCtxs.put(accCtx.ledgerHash, accCtx); // 添加对应Hash到该Peer节点 currentPeerLedgers.add(accCtx.ledgerHash); @@ -189,7 +181,6 @@ public class PeerBlockchainServiceFactory implements BlockchainServiceFactory, C LOGGER.info("First connect, peer[{}] init new ledger[{}] OK !!!", peerAddr, hash.toBase58()); } } - } else { factory.accessContextMap.putAll(tempAccessCtxs); factory.addLedgerAccessContexts(accessAbleLedgers);