Browse Source

add logs

tags/1.1.11
shaozhuguang 5 years ago
parent
commit
03681accaf
3 changed files with 42 additions and 14 deletions
  1. +2
    -2
      source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/service/BftsmartNodeServer.java
  2. +34
    -12
      source/gateway/src/main/java/com/jd/blockchain/gateway/service/PeerConnectionManager.java
  3. +6
    -0
      source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/PeerServiceProxy.java

+ 2
- 2
source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/service/BftsmartNodeServer.java View File

@@ -466,9 +466,9 @@ public class BftsmartNodeServer extends DefaultRecoverable implements NodeServer
}
resp.setExecutionState(TransactionState.IGNORED_BY_BLOCK_FULL_ROLLBACK);
updatedResponses.add(BinaryProtocol.encode(resp, TransactionResponse.class));
}
return updatedResponses;
}
return updatedResponses;
}
/**
*
* Decision has been made at the consensus stage, commit block


+ 34
- 12
source/gateway/src/main/java/com/jd/blockchain/gateway/service/PeerConnectionManager.java View File

@@ -319,18 +319,34 @@ public class PeerConnectionManager implements PeerService, PeerConnector {
} catch (Exception e) {
LOGGER.error(String.format("Peer[%s] get ledger[%s]'s latest block height fail !!!",
entry.getKey(), ledgerHash.toBase58()), e);
// 此错误是由于对端的节点没有重连导致,需要进行重连操作
NetworkAddress peerAddress = entry.getKey();
try {
PeerBlockchainServiceFactory peerServiceFactory = PeerBlockchainServiceFactory.connect(
gateWayKeyPair, peerAddress, peerProviders);
if (peerServiceFactory != null) {
tmpEntries.put(peerAddress, peerServiceFactory);
// 需要判断是否具有当前账本,有的话,进行重连,没有的话就算了
BlockchainService blockchainService = sf.getBlockchainService();
if (blockchainService instanceof PeerServiceProxy) {
boolean isNeedReconnect = false;
ledgerHashs = ((PeerServiceProxy) blockchainService).getLedgerHashsDirect();
if (ledgerHashs != null) {
for (HashDigest h : ledgerHashs) {
if (h.equals(ledgerHash)) {
// 确实存在对应的账本,则重连
isNeedReconnect = true;
}
}
}
} catch (Exception ee) {
LOGGER.error(String.format("Peer[%s] reconnect fail !!!",
entry.getKey()), e);
}
if (isNeedReconnect) {
// 此错误是由于对端的节点没有重连导致,需要进行重连操作
NetworkAddress peerAddress = entry.getKey();
try {
PeerBlockchainServiceFactory peerServiceFactory = PeerBlockchainServiceFactory.connect(
gateWayKeyPair, peerAddress, peerProviders);
if (peerServiceFactory != null) {
tmpEntries.put(peerAddress, peerServiceFactory);
}
} catch (Exception ee) {
LOGGER.error(String.format("Peer[%s] reconnect fail !!!",
entry.getKey()), e);
}
}
}
}
} else {
defaultPeerAddress = entry.getKey();
@@ -378,7 +394,10 @@ public class PeerConnectionManager implements PeerService, PeerConnector {
ledgerHashs = ((PeerServiceProxy) blockchainService).getLedgerHashsDirect();
if (ledgerHashs != null) {
ledgerSize = ledgerHashs.length;
}
for (HashDigest h : ledgerHashs) {
LOGGER.info("Peer[{}] get ledger direct [{}]", mostLedgerPeerServiceFactory.peerAddress, h.toBase58());
}
}
}
} catch (Exception e) {
// 连接失败的情况下清除该连接
@@ -397,6 +416,9 @@ public class PeerConnectionManager implements PeerService, PeerConnector {
try {
if (loopBlockchainService instanceof PeerServiceProxy) {
ledgerHashs = ((PeerServiceProxy) loopBlockchainService).getLedgerHashsDirect();
for (HashDigest h : ledgerHashs) {
LOGGER.info("Peer[{}] get ledger direct [{}]", entry.getKey(), h.toBase58());
}
if (ledgerHashs.length > ledgerSize) {
tempMostLedgerPeerServiceFactory = new PeerServiceFactory(entry.getKey(),entry.getValue());
}


+ 6
- 0
source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/PeerServiceProxy.java View File

@@ -8,6 +8,7 @@ import com.jd.blockchain.sdk.LedgerAccessContext;
import com.jd.blockchain.sdk.proxy.BlockchainServiceProxy;
import com.jd.blockchain.transaction.BlockchainQueryService;
import com.jd.blockchain.transaction.TransactionService;
import org.slf4j.LoggerFactory;

import java.util.*;
import java.util.concurrent.locks.Lock;
@@ -21,6 +22,8 @@ import java.util.concurrent.locks.ReentrantLock;
*/
public class PeerServiceProxy extends BlockchainServiceProxy implements TransactionService {

private static final org.slf4j.Logger LOGGER = LoggerFactory.getLogger(PeerServiceProxy.class);

private final Lock accessLock = new ReentrantLock();

/**
@@ -90,6 +93,9 @@ public class PeerServiceProxy extends BlockchainServiceProxy implements Transact
Collection<LedgerAccessContext> ctxs = ledgerAccessContexts.values();
for (LedgerAccessContext ctx : ctxs) {
HashDigest[] hashs = ctx.getQueryService().getLedgerHashs();
for (HashDigest h : hashs) {
LOGGER.info("Get ledger[{}] by [{}]'s AccessContext !!!", h.toBase58(), ctx.getLedgerHash().toBase58());
}
ledgerHashs.addAll(Arrays.asList(hashs));
}
}


Loading…
Cancel
Save