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 1e82ee0f..ca07c0b9 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 @@ -3,16 +3,22 @@ package com.jd.blockchain.consensus.bftsmart.service; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; +import bftsmart.reconfiguration.util.TOMConfiguration; import com.jd.blockchain.consensus.ClientIdentification; import com.jd.blockchain.consensus.ConsensusManageService; import com.jd.blockchain.consensus.bftsmart.BftsmartClientIncomingConfig; import com.jd.blockchain.consensus.bftsmart.BftsmartClientIncomingSettings; +import com.jd.blockchain.consensus.bftsmart.BftsmartTopology; import com.jd.blockchain.crypto.Crypto; import com.jd.blockchain.crypto.SignatureFunction; import com.jd.blockchain.utils.serialize.binary.BinarySerializeUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class BftsmartConsensusManageService implements ConsensusManageService { + private static Logger LOGGER = LoggerFactory.getLogger(BftsmartConsensusManageService.class); + public static final int GATEWAY_SIZE = 100; public static final int CLIENT_SIZE_PER_GATEWAY = 1000; @@ -34,6 +40,12 @@ 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()); + + LOGGER.info("topology:{}, tomConfig:{}", topology == null ? 0 : topology.length, + tomConfig == null ? 0: tomConfig.length); + BftsmartClientIncomingConfig clientIncomingSettings = new BftsmartClientIncomingConfig(); clientIncomingSettings diff --git a/source/sdk/sdk-base/pom.xml b/source/sdk/sdk-base/pom.xml index 06c664fc..a4633d66 100644 --- a/source/sdk/sdk-base/pom.xml +++ b/source/sdk/sdk-base/pom.xml @@ -40,6 +40,12 @@ + + com.jd.blockchain + consensus-bftsmart + ${project.version} + + com.jd.blockchain utils-serialize 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 1d76163e..e63f092a 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 @@ -1,6 +1,7 @@ package com.jd.blockchain.sdk.service; import com.jd.blockchain.consensus.*; +import com.jd.blockchain.consensus.bftsmart.client.BftsmartClientSettings; import com.jd.blockchain.consensus.client.ClientFactory; import com.jd.blockchain.consensus.client.ClientSettings; import com.jd.blockchain.consensus.client.ConsensusClient; @@ -152,6 +153,15 @@ public class PeerBlockchainServiceFactory implements BlockchainServiceFactory, C ClientSettings clientSettings = clientFactory.buildClientSettings(clientIncomingSettings); ConsensusClient consensusClient = clientFactory.setupClient(clientSettings); + if (clientSettings instanceof BftsmartClientSettings) { + BftsmartClientSettings bftsmartClientSettings = (BftsmartClientSettings) clientSettings; + byte[] topology = bftsmartClientSettings.getTopology(); + byte[] tomConfig = bftsmartClientSettings.getTomConfig(); + LOGGER.info("Peer[{}] ledger = [{}] topology : {}, tomConfig : {}", peerAddr, + ledgerSetting.getLedgerHash().toBase58(), topology == null ? 0 : topology.length , + tomConfig == null ? 0 : tomConfig.length); + } + TransactionService autoSigningTxProcService = enableGatewayAutoSigning(gatewayKey, ledgerSetting.getCryptoSetting(), consensusClient);