Search in sources :

Example 1 with NodesContainer

use of io.nuls.network.netty.container.NodesContainer in project nuls by nuls-io.

the class NodeManager method loadDatas.

public void loadDatas() {
    // 本地已经存储的节点信息
    NodeContainerPo containerPo = getNetworkStorageService().loadNodeContainer();
    if (containerPo != null) {
        NodesContainer container = new NodesContainer(containerPo);
        this.nodesContainer = container;
    }
    // 获取种子节点
    List<Node> seedList = getSeedNodes();
    for (Node node : seedList) {
        node.setConnectStatus(NodeConnectStatusEnum.UNCONNECT);
        nodesContainer.getCanConnectNodes().put(node.getId(), node);
        nodesContainer.getUncheckNodes().remove(node.getId());
        nodesContainer.getDisconnectNodes().remove(node.getId());
        nodesContainer.getFailNodes().remove(node.getId());
    }
}
Also used : NodesContainer(io.nuls.network.netty.container.NodesContainer) Node(io.nuls.network.model.Node) NodeContainerPo(io.nuls.network.storage.po.NodeContainerPo)

Example 2 with NodesContainer

use of io.nuls.network.netty.container.NodesContainer 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 3 with NodesContainer

use of io.nuls.network.netty.container.NodesContainer in project nuls by nuls-io.

the class NodeDiscoverTask method processFailNodes.

private void processFailNodes() {
    try {
        NodesContainer nodesContainer = nodeManager.getNodesContainer();
        Map<String, Node> canConnectNodes = nodesContainer.getCanConnectNodes();
        while (true) {
            Map<String, Node> failNodes = nodesContainer.getFailNodes();
            if (failNodes.size() > 0) {
                probeNodes(failNodes, canConnectNodes);
            }
            Thread.sleep(3000L);
        }
    } catch (Exception e) {
        Log.error(e);
        try {
            Thread.sleep(3000L);
        } catch (InterruptedException e1) {
            Log.error(e1);
        }
    }
}
Also used : NodesContainer(io.nuls.network.netty.container.NodesContainer) Node(io.nuls.network.model.Node)

Example 4 with NodesContainer

use of io.nuls.network.netty.container.NodesContainer in project nuls by nuls-io.

the class NodeDiscoverTask method processNodes.

private void processNodes() {
    NodesContainer nodesContainer = nodeManager.getNodesContainer();
    Map<String, Node> canConnectNodes = nodesContainer.getCanConnectNodes();
    Map<String, Node> uncheckNodes = nodesContainer.getUncheckNodes();
    Map<String, Node> disconnectNodes = nodesContainer.getDisconnectNodes();
    if (uncheckNodes.size() > 0) {
        probeNodes(uncheckNodes, canConnectNodes);
    }
    if (disconnectNodes.size() > 0) {
        probeNodes(disconnectNodes, canConnectNodes);
    }
}
Also used : NodesContainer(io.nuls.network.netty.container.NodesContainer) Node(io.nuls.network.model.Node)

Aggregations

Node (io.nuls.network.model.Node)4 NodesContainer (io.nuls.network.netty.container.NodesContainer)4 NodeContainerPo (io.nuls.network.storage.po.NodeContainerPo)1