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);
}
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);
}
}
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;
}
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());
}
}
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);
}
Aggregations