Search in sources :

Example 1 with BlockHashResponse

use of io.nuls.protocol.model.BlockHashResponse in project nuls by nuls-io.

the class GetBlocksHashHandler method onMessage.

@Override
public void onMessage(GetBlocksHashMessage message, Node fromNode) {
    GetBlocksHashParam param = message.getMsgBody();
    if (param.getEndHeight() - param.getStartHeight() >= MAX_SIZE) {
        return;
    }
    NulsDigestData requestHash = message.getHash();
    BlockHeader endHeader = blockService.getBlockHeader(param.getEndHeight()).getData();
    if (null == endHeader) {
        sendNotFound(fromNode, requestHash);
        return;
    }
    BlockHashResponse response = new BlockHashResponse();
    response.setRequestMessageHash(requestHash);
    BlockHeader header = endHeader;
    while (header.getHeight() >= param.getStartHeight()) {
        response.putFront(header.getHash());
        header = blockService.getBlockHeader(header.getPreHash()).getData();
        if (header == null) {
            break;
        }
    }
    sendResponse(response, fromNode);
}
Also used : GetBlocksHashParam(io.nuls.protocol.model.GetBlocksHashParam) BlockHashResponse(io.nuls.protocol.model.BlockHashResponse) NulsDigestData(io.nuls.kernel.model.NulsDigestData) BlockHeader(io.nuls.kernel.model.BlockHeader)

Aggregations

BlockHeader (io.nuls.kernel.model.BlockHeader)1 NulsDigestData (io.nuls.kernel.model.NulsDigestData)1 BlockHashResponse (io.nuls.protocol.model.BlockHashResponse)1 GetBlocksHashParam (io.nuls.protocol.model.GetBlocksHashParam)1