use of io.nuls.protocol.base.service.DownloadServiceImpl in project nuls by nuls-io.
the class BaseProtocolsModuleBootstrap method start.
@Override
public void start() {
this.waitForDependencyRunning(MessageBusConstant.MODULE_ID_MESSAGE_BUS);
this.waitForDependencyInited(ConsensusConstant.MODULE_ID_CONSENSUS, NetworkConstant.NETWORK_MODULE_ID);
BlockService blockService = NulsContext.getServiceBean(BlockService.class);
Block block0 = blockService.getGengsisBlock().getData();
Block genesisBlock = NulsContext.getInstance().getGenesisBlock();
if (null == block0) {
try {
blockService.saveBlock(genesisBlock);
} catch (NulsException e) {
Log.error(e);
throw new NulsRuntimeException(e);
}
}
Block block = blockService.getBestBlock().getData();
while (null != block && block.verify().isFailed()) {
try {
blockService.rollbackBlock(block);
} catch (NulsException e) {
Log.error(e);
}
block = blockService.getBlock(block.getHeader().getPreHash()).getData();
}
if (null != block) {
NulsContext.getInstance().setBestBlock(block);
this.initHandlers();
((DownloadServiceImpl) NulsContext.getServiceBean(DownloadService.class)).start();
} else {
start();
}
}
Aggregations