Search in sources :

Example 1 with GetVersionMessage

use of io.nuls.network.protocol.message.GetVersionMessage in project nuls by nuls-io.

the class GetVersionMessageHandler method process.

@Override
public NetworkEventResult process(BaseMessage message, Node node) {
    GetVersionMessage getVersionMessage = (GetVersionMessage) message;
    NetworkMessageBody body = getVersionMessage.getMsgBody();
    if (body.getBestBlockHeight() < 0) {
        // node.setStatus(Node.BAD);
        nodeManager.removeNode(node.getId());
        return null;
    }
    node.setBestBlockHeight(body.getBestBlockHeight());
    node.setBestBlockHash(body.getBestBlockHash());
    NetworkMessageBody myVersionBody = new NetworkMessageBody(NetworkConstant.HANDSHAKE_CLIENT_TYPE, networkParam.getPort(), NulsContext.getInstance().getBestHeight(), NulsContext.getInstance().getBestBlock().getHeader().getHash());
    return new NetworkEventResult(true, new VersionMessage(myVersionBody));
}
Also used : NetworkMessageBody(io.nuls.network.protocol.message.NetworkMessageBody) VersionMessage(io.nuls.network.protocol.message.VersionMessage) GetVersionMessage(io.nuls.network.protocol.message.GetVersionMessage) GetVersionMessage(io.nuls.network.protocol.message.GetVersionMessage) NetworkEventResult(io.nuls.network.model.NetworkEventResult)

Example 2 with GetVersionMessage

use of io.nuls.network.protocol.message.GetVersionMessage in project nuls by nuls-io.

the class GetNodeVersionTask method process.

private void process() {
    Collection<Node> connectedNodes = nodeManager.getAvailableNodes();
    if (connectedNodes == null) {
        return;
    }
    NetworkMessageBody body = new NetworkMessageBody(NetworkConstant.HANDSHAKE_CLIENT_TYPE, networkParam.getPort(), NulsContext.getInstance().getBestHeight(), NulsContext.getInstance().getBestBlock().getHeader().getHash());
    GetVersionMessage getVersionMessage = new GetVersionMessage(body);
    Iterator<Node> it = connectedNodes.iterator();
    while (it.hasNext()) {
        Node node = it.next();
        if (node.getType() == Node.OUT) {
            if (!checkIsSurvive(node)) {
                it.remove();
                continue;
            }
            node.setLastTime(TimeService.currentTimeMillis());
            broadcastHandler.broadcastToNode(getVersionMessage, node, true);
        }
    }
}
Also used : NetworkMessageBody(io.nuls.network.protocol.message.NetworkMessageBody) GetVersionMessage(io.nuls.network.protocol.message.GetVersionMessage) Node(io.nuls.network.model.Node)

Aggregations

GetVersionMessage (io.nuls.network.protocol.message.GetVersionMessage)2 NetworkMessageBody (io.nuls.network.protocol.message.NetworkMessageBody)2 NetworkEventResult (io.nuls.network.model.NetworkEventResult)1 Node (io.nuls.network.model.Node)1 VersionMessage (io.nuls.network.protocol.message.VersionMessage)1