Search in sources :

Example 1 with DownloadServiceImpl

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();
    }
}
Also used : DownloadServiceImpl(io.nuls.protocol.base.service.DownloadServiceImpl) NulsException(io.nuls.kernel.exception.NulsException) BlockService(io.nuls.protocol.service.BlockService) Block(io.nuls.kernel.model.Block) NulsRuntimeException(io.nuls.kernel.exception.NulsRuntimeException) DownloadService(io.nuls.protocol.service.DownloadService)

Aggregations

NulsException (io.nuls.kernel.exception.NulsException)1 NulsRuntimeException (io.nuls.kernel.exception.NulsRuntimeException)1 Block (io.nuls.kernel.model.Block)1 DownloadServiceImpl (io.nuls.protocol.base.service.DownloadServiceImpl)1 BlockService (io.nuls.protocol.service.BlockService)1 DownloadService (io.nuls.protocol.service.DownloadService)1