Search in sources :

Example 11 with Node

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

the class NodeManager method cacheNode.

private void cacheNode(Node node, SocketChannel channel) {
    String name = "node-" + node.getId();
    boolean exists = AttributeKey.exists(name);
    AttributeKey attributeKey;
    if (exists) {
        attributeKey = AttributeKey.valueOf(name);
    } else {
        attributeKey = AttributeKey.newInstance(name);
    }
    Attribute<Node> attribute = channel.attr(attributeKey);
    attribute.set(node);
}
Also used : AttributeKey(io.netty.util.AttributeKey) Node(io.nuls.network.model.Node)

Example 12 with Node

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

the class NodeManager method removeNode.

public void removeNode(String nodeId) {
    Log.info("-------------remove node:" + nodeId);
    Node node = getNode(nodeId);
    if (node.getChannel() != null) {
        node.getChannel().close();
    } else {
        nodesContainer.getConnectedNodes().remove(nodeId);
    }
}
Also used : Node(io.nuls.network.model.Node)

Example 13 with Node

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

the class NodeManager method getCanConnectNodes.

public Collection<Node> getCanConnectNodes() {
    List<Node> nodeList = new ArrayList<>();
    Collection<Node> allNodes = nodesContainer.getCanConnectNodes().values();
    for (Node node : allNodes) {
        if (node.getStatus() == NodeStatusEnum.CONNECTABLE) {
            nodeList.add(node);
        }
    }
    return nodeList;
}
Also used : Node(io.nuls.network.model.Node)

Example 14 with Node

use of io.nuls.network.model.Node 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 15 with Node

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

the class GetNodesMessageHandler method process.

@Override
public NetworkEventResult process(BaseMessage message, Node node) {
    List<Node> nodeList = getAvailableNodes();
    NodeMessageBody body = new NodeMessageBody();
    body.setNodeList(nodeList);
    NodesMessage nodesMessage = new NodesMessage(body);
    return new NetworkEventResult(true, nodesMessage);
}
Also used : NodesMessage(io.nuls.network.protocol.message.NodesMessage) Node(io.nuls.network.model.Node) NodeMessageBody(io.nuls.network.protocol.message.NodeMessageBody) NetworkEventResult(io.nuls.network.model.NetworkEventResult)

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