/**
* Copyright 2014-2021 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
package com.webank.webase.node.mgr.front;
import com.webank.webase.node.mgr.base.code.ConstantCode;
import com.webank.webase.node.mgr.base.enums.DataStatus;
import com.webank.webase.node.mgr.base.enums.FrontStatusEnum;
import com.webank.webase.node.mgr.base.enums.GroupStatus;
import com.webank.webase.node.mgr.base.enums.GroupType;
import com.webank.webase.node.mgr.base.enums.HostStatusEnum;
import com.webank.webase.node.mgr.base.enums.OptionType;
import com.webank.webase.node.mgr.base.enums.RunTypeEnum;
import com.webank.webase.node.mgr.base.enums.ScpTypeEnum;
import com.webank.webase.node.mgr.base.exception.NodeMgrException;
import com.webank.webase.node.mgr.config.properties.ConstantProperties;
import com.webank.webase.node.mgr.config.properties.VersionProperties;
import com.webank.webase.node.mgr.tools.CertTools;
import com.webank.webase.node.mgr.tools.JsonTools;
import com.webank.webase.node.mgr.tools.NodeMgrTools;
import com.webank.webase.node.mgr.tools.NumberUtil;
import com.webank.webase.node.mgr.tools.ProgressTools;
import com.webank.webase.node.mgr.tools.ThymeleafUtil;
import com.webank.webase.node.mgr.tools.cmd.ExecuteResult;
import com.webank.webase.node.mgr.deploy.chain.ChainService;
import com.webank.webase.node.mgr.deploy.entity.DeployNodeInfo;
import com.webank.webase.node.mgr.deploy.entity.NodeConfig;
import com.webank.webase.node.mgr.deploy.entity.TbAgency;
import com.webank.webase.node.mgr.deploy.entity.TbChain;
import com.webank.webase.node.mgr.deploy.entity.TbHost;
import com.webank.webase.node.mgr.deploy.mapper.TbChainMapper;
import com.webank.webase.node.mgr.deploy.mapper.TbHostMapper;
import com.webank.webase.node.mgr.deploy.service.AgencyService;
import com.webank.webase.node.mgr.deploy.service.AnsibleService;
import com.webank.webase.node.mgr.deploy.service.DeployShellService;
import com.webank.webase.node.mgr.deploy.service.DockerCommandService;
import com.webank.webase.node.mgr.deploy.service.HostService;
import com.webank.webase.node.mgr.deploy.service.PathService;
import com.webank.webase.node.mgr.front.entity.FrontInfo;
import com.webank.webase.node.mgr.front.entity.FrontNodeConfig;
import com.webank.webase.node.mgr.front.entity.FrontParam;
import com.webank.webase.node.mgr.front.entity.TbFront;
import com.webank.webase.node.mgr.frontgroupmap.FrontGroupMapCache;
import com.webank.webase.node.mgr.frontgroupmap.FrontGroupMapMapper;
import com.webank.webase.node.mgr.frontgroupmap.FrontGroupMapService;
import com.webank.webase.node.mgr.frontgroupmap.entity.TbFrontGroupMap;
import com.webank.webase.node.mgr.front.frontinterface.FrontInterfaceService;
import com.webank.webase.node.mgr.group.GroupService;
import com.webank.webase.node.mgr.group.entity.TbGroup;
import com.webank.webase.node.mgr.node.NodeMapper;
import com.webank.webase.node.mgr.node.NodeService;
import com.webank.webase.node.mgr.node.entity.NodeParam;
import com.webank.webase.node.mgr.node.entity.PeerInfo;
import com.webank.webase.node.mgr.node.entity.TbNode;
import com.webank.webase.node.mgr.scheduler.ResetGroupListTask;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.time.Duration;
import java.time.Instant;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
import lombok.extern.log4j.Log4j2;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.map.HashedMap;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.logging.log4j.Level;
import org.fisco.bcos.sdk.client.protocol.response.NodeInfo.NodeInformation;
import org.fisco.bcos.sdk.client.protocol.response.SyncStatus.SyncStatusInfo;
import org.fisco.bcos.sdk.crypto.CryptoSuite;
import org.fisco.bcos.sdk.model.CryptoType;
import org.fisco.bcos.sdk.model.NodeVersion.ClientVersion;
import org.springframework.aop.framework.AopContext;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
/**
* service of web3.
*/
@Log4j2
@Service
public class FrontService {
@Autowired
private FrontMapper frontMapper;
@Autowired
private TbHostMapper tbHostMapper;
@Autowired
private NodeMapper nodeMapper;
@Autowired
private FrontGroupMapMapper frontGroupMapMapper;
@Autowired
private TbChainMapper tbChainMapper;
@Autowired
private NodeService nodeService;
@Autowired
private GroupService groupService;
@Autowired
private FrontGroupMapService frontGroupMapService;
@Autowired
private FrontInterfaceService frontInterface;
@Autowired
private FrontGroupMapCache frontGroupMapCache;
@Autowired
private ResetGroupListTask resetGroupListTask;
@Autowired
private ConstantProperties constants;
@Autowired
private AgencyService agencyService;
@Autowired
private PathService pathService;
@Autowired
private DeployShellService deployShellService;
@Autowired
private ConstantProperties constant;
@Autowired
private DockerCommandService dockerOptions;
@Autowired
private AnsibleService ansibleService;
@Autowired
private HostService hostService;
@Autowired
private ChainService chainService;
@Qualifier(value = "deployAsyncScheduler")
@Autowired private ThreadPoolTaskScheduler threadPoolTaskScheduler;
@Autowired private CryptoSuite cryptoSuite;
// version to check
@Autowired
private VersionProperties versionProperties;
// interval of check front status
private static final Long CHECK_FRONT_STATUS_WAIT_MIN_MILLIS = 3000L;
/**
* refresh front, group, frontGroupMap, nodeList
*/
@Transactional
public void refreshFront() {
//get all front
List<TbFront> frontList = frontMapper.getAllList();
if (frontList == null || frontList.size() == 0) {
log.info("refreshFront. not find any front.");
return;
}
for (TbFront tbFront : frontList) {
try {
String frontIp = tbFront.getFrontIp();
Integer frontPort = tbFront.getFrontPort();
// query group list from chain
List<String> groupIdList;
groupIdList = frontInterface.getGroupListFromSpecificFront(frontIp, frontPort);
// get syncStatus
SyncStatusInfo syncStatus = frontInterface.getSyncStatusFromSpecificFront(frontIp,
frontPort, Integer.valueOf(groupIdList.get(0)));
// get version info
ClientVersion versionResponse = frontInterface.getClientVe
没有合适的资源?快使用搜索试试~ 我知道了~
WeBASE-Node-Manager-master.zip
共558个文件
java:462个
xml:27个
sh:18个
0 下载量 125 浏览量
2023-03-26
08:56:22
上传
评论
收藏 5MB ZIP 举报
温馨提示
WeBASE-Node-Manager处理前端页面所有web请求,管理各个节点的状态,管理链上所有智能合约,对区块链的数据进行统计、分析,对异常交易的审计,私钥管理等
资源推荐
资源详情
资源评论
收起资源包目录
WeBASE-Node-Manager-master.zip (558个子文件)
gradlew.bat 3KB
swagger-ui.css 150KB
Dockerfile 1023B
.gitignore 411B
build.gradle 6KB
gradlew 6KB
index.html 1KB
AlertEmailForTest.html 378B
AlertEmailTemplate.html 361B
gradle-wrapper.jar 58KB
FrontService.java 57KB
GroupService.java 56KB
HostService.java 41KB
ContractService.java 37KB
FrontInterfaceService.java 32KB
UserService.java 30KB
ScaffoldBuildTest.java 29KB
ContractControllerTest.java 29KB
DeployService.java 29KB
AppIntegrationApi.java 25KB
ConstantCode.java 25KB
NodeMgrTools.java 25KB
CertService.java 24KB
MonitorService.java 24KB
NodeService.java 23KB
FrontRestTools.java 22KB
ChainService.java 22KB
ContractController.java 22KB
WarehouseMdTest.java 20KB
UserController.java 19KB
MailService.java 19KB
DeployController.java 19KB
MethodIdGmTest.java 17KB
GroupController.java 16KB
AnsibleService.java 16KB
StatService.java 15KB
PathService.java 15KB
BlockService.java 14KB
ChainGovernController.java 14KB
ChainGovernService.java 13KB
AbiService.java 13KB
NodeAsyncService.java 13KB
ImportCertTest.java 12KB
JsonTools.java 12KB
ScaffoldService.java 11KB
PrecompiledService.java 11KB
BCCertTest.java 11KB
TransHashService.java 11KB
ExternalController.java 10KB
AccountService.java 10KB
ConstantProperties.java 10KB
TbExternalContractSqlProvider.java 10KB
FrontGroupMapService.java 10KB
AccountController.java 9KB
ContractServiceTest.java 9KB
AppIntegrationService.java 9KB
TbExternalAccountSqlProvider.java 9KB
SshTools.java 9KB
PermissionManageService.java 9KB
BlockController.java 8KB
ExtContractService.java 8KB
GroupControllerTest.java 8KB
CertController.java 8KB
NodeStatusMonitorTask.java 8KB
AgencyService.java 8KB
PermissionManageController.java 8KB
NodeConfig.java 8KB
SendMailTest.java 8KB
MonitorController.java 7KB
HostController.java 7KB
IpConfigParse.java 7KB
FrontServiceTest.java 7KB
AlertRuleController.java 7KB
MailServerConfigController.java 7KB
AbiController.java 7KB
TransHashController.java 7KB
DeployShellService.java 7KB
DockerCommandService.java 7KB
PrecompiledController.java 7KB
NodeController.java 7KB
FrontController.java 7KB
AlertRuleTools.java 7KB
TbExternalContractMapper.java 6KB
MailServerConfigService.java 6KB
ThymeleafUtil.java 6KB
AuditMonitorTask.java 6KB
StatisticsTransdailyTask.java 6KB
Web3Tools.java 6KB
WarehouseController.java 6KB
EventController.java 6KB
UserControllerTest.java 6KB
PresetDataService.java 6KB
AlertLogService.java 5KB
DeleteInfoTask.java 5KB
SecurityConfig.java 5KB
WarehouseSmartDevTest.java 5KB
MailController.java 5KB
TbExternalAccountMapper.java 5KB
TbStatMapper.java 5KB
TokenImgGenerator.java 5KB
共 558 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
m0_72731342
- 粉丝: 2
- 资源: 1832
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功