Search in sources :

Example 16 with Node

use of io.nuls.network.model.Node in project nuls by nuls-io.

the class GetNodesMessageHandler method getAvailableNodes.

private List<Node> getAvailableNodes() {
    NodesContainer nodesContainer = nodeManager.getNodesContainer();
    Map<String, Node> canConnectNodes = nodesContainer.getCanConnectNodes();
    Map<String, Node> connectedNodes = nodesContainer.getConnectedNodes();
    List<Node> nodeList = new ArrayList<>();
    for (Node node : canConnectNodes.values()) {
        Node newNode = new Node();
        newNode.setIp(node.getIp());
        newNode.setPort(node.getPort());
        nodeList.add(newNode);
    }
    for (Node node : connectedNodes.values()) {
        if (node.getType() == Node.IN) {
            continue;
        }
        Node newNode = new Node();
        newNode.setIp(node.getIp());
        newNode.setPort(node.getPort());
        nodeList.add(newNode);
    }
    Collections.shuffle(nodeList);
    return nodeList;
}
Also used : NodesContainer(io.nuls.network.netty.container.NodesContainer) Node(io.nuls.network.model.Node)

Example 17 with Node

use of io.nuls.network.model.Node in project nuls by nuls-io.

the class NetworkTransferTool method toNode.

public static Node toNode(NodePo po) {
    Node node = new Node();
    node.setId(po.getId());
    node.setIp(po.getIp());
    node.setPort(po.getPort());
    node.setFailCount(po.getFailCount());
    node.setLastTime(po.getLastTime());
    node.setLastFailTime(po.getLastFailTime());
    node.setStatus(po.getStatus());
    node.setConnectStatus(po.getConnectStatus());
    return node;
}
Also used : Node(io.nuls.network.model.Node)

Example 18 with Node

use of io.nuls.network.model.Node in project nuls by nuls-io.

the class NetworkStorageServiceImpl method getAllNodes.

@Override
public List<Node> getAllNodes() {
    List<NodePo> poList = getDbService().values(NetworkStorageConstant.DB_NAME_NETWORK_NODE, NodePo.class);
    if (poList == null) {
        return new ArrayList<>();
    }
    List<Node> nodeList = new ArrayList<>();
    for (NodePo po : poList) {
        nodeList.add(NetworkTransferTool.toNode(po));
    }
    return nodeList;
}
Also used : NodePo(io.nuls.network.storage.po.NodePo) Node(io.nuls.network.model.Node)

Example 19 with Node

use of io.nuls.network.model.Node in project nuls by nuls-io.

the class MessageBusServiceImpl method getNodeIdListResult.

private Result<List<String>> getNodeIdListResult(BroadcastResult result) {
    List<String> list = new ArrayList<>();
    if (!result.isSuccess() || result.getBroadcastNodes() == null || result.getBroadcastNodes().isEmpty()) {
        return Result.getFailed(result.getErrorCode()).setData(list);
    }
    for (Node node : result.getBroadcastNodes()) {
        list.add(node.getId());
    }
    Result rs = new Result();
    rs.setSuccess(true);
    rs.setData(list);
    return rs;
}
Also used : Node(io.nuls.network.model.Node) ArrayList(java.util.ArrayList) BroadcastResult(io.nuls.network.model.BroadcastResult) Result(io.nuls.kernel.model.Result)

Example 20 with Node

use of io.nuls.network.model.Node in project nuls by nuls-io.

the class NodeDiscoverTask method probeNodes.

private void probeNodes(Map<String, Node> verifyNodes, Map<String, Node> canConnectNodes) {
    for (Map.Entry<String, Node> nodeEntry : verifyNodes.entrySet()) {
        Node node = nodeEntry.getValue();
        boolean needProbeNow = checkNeedProbeNow(node, verifyNodes);
        if (!needProbeNow) {
            continue;
        }
        int status = doProbe(node);
        if (status == PROBE_STATUS_IGNORE) /* && !node.isSeedNode()*/
        {
            continue;
        }
        verifyNodes.remove(node.getId());
        if (status == PROBE_STATUS_SUCCESS) {
            node.setConnectStatus(NodeConnectStatusEnum.UNCONNECT);
            node.setStatus(NodeStatusEnum.CONNECTABLE);
            node.setFailCount(0);
            canConnectNodes.put(node.getId(), node);
            if (node.getLastProbeTime() == 0L) {
                // 当lastProbeTime为0时,代表第一次探测且成功,只有在第一次探测成功时情况,才转发节点信息
                doShare(node);
            }
        } else if (status == PROBE_STATUS_FAIL) {
            nodeManager.nodeConnectFail(node);
            nodeManager.getNodesContainer().getFailNodes().put(node.getId(), node);
        }
        node.setLastProbeTime(TimeService.currentTimeMillis());
    }
}
Also used : Node(io.nuls.network.model.Node) Map(java.util.Map)

Aggregations

Node (io.nuls.network.model.Node)48 Result (io.nuls.kernel.model.Result)4 NodesContainer (io.nuls.network.netty.container.NodesContainer)4 Block (io.nuls.kernel.model.Block)3 NulsDigestData (io.nuls.kernel.model.NulsDigestData)3 RpcClientResult (io.nuls.kernel.model.RpcClientResult)3 BroadcastResult (io.nuls.network.model.BroadcastResult)3 BlockMessage (io.nuls.protocol.message.BlockMessage)3 ApiOperation (io.swagger.annotations.ApiOperation)3 ApiResponses (io.swagger.annotations.ApiResponses)3 IOException (java.io.IOException)3 GET (javax.ws.rs.GET)3 Path (javax.ws.rs.Path)3 Produces (javax.ws.rs.Produces)3 Test (org.junit.Test)3 ByteBuf (io.netty.buffer.ByteBuf)2 SocketChannel (io.netty.channel.socket.SocketChannel)2 TooLongFrameException (io.netty.handler.codec.TooLongFrameException)2 NodeMessageBody (io.nuls.network.protocol.message.NodeMessageBody)2 NodesMessage (io.nuls.network.protocol.message.NodesMessage)2