-
Notifications
You must be signed in to change notification settings - Fork 59
Description
当前
链版本2.11.0
节点前置v1.5.5
签名服务v1.5.3
现在新增观察节点到节点前置服务内,但是在下面的代码中,会自动将我的观察节点的状态 “2”改为共识节点的状态为“1”
public int checkNodeType(int groupId, String nodeId) {
int localHighestHeight = nodeMapper.getHighestBlockHeight(groupId);
TbNode node = nodeMapper.getByNodeIdAndGroupId(nodeId, groupId);
int nodeBlockHeight = node != null ? node.getBlockNumber().intValue() : 0;
log.info("local localHighestHeight:{},groupId:{} nodeId:{}, nodeBlockHeight:{}",
localHighestHeight, groupId, nodeId, nodeBlockHeight);
if (localHighestHeight == nodeBlockHeight) {
return ConsensusType.SEALER.getValue();
} else if (localHighestHeight > nodeBlockHeight) {
return ConsensusType.OBSERVER.getValue();
} else {
return 0;
}
观察节点不参与共识,但是可以同步链上数据,所以链上的块高和数据库内的块高是一致的,但是这里的判断又将它变更为了共识节点
,所以这里是不是会导致后面我后面邮件报警的时候,轮询查询节点是否为观察节点的时候查询不到,导致进入了共识节点但是又因为观察节点没有pbftview的值,满足了节点异常,但是又没有停止,所以一直在发节点报错邮件。