Search in sources :

Example 21 with Node

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

the class NetworkResource method getNetworkInfo.

// private NodeCacheManager nodeCacheManager = NodeCacheManager.getInstance();
@GET
@Path("/info/")
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(value = "查询网络最新信息")
@ApiResponses(value = { @ApiResponse(code = 200, message = "success", response = NetworkInfoDto.class) })
public RpcClientResult getNetworkInfo() {
    NetworkInfoDto info = new NetworkInfoDto(NulsContext.getInstance().getBestBlock().getHeader().getHeight(), NulsContext.getInstance().getNetBestBlockHeight(), TimeService.getNetTimeOffset());
    Collection<Node> collections = networkService.getAvailableNodes();
    int inCount = 0;
    int outCount = 0;
    for (Node node : collections) {
        if (node.getType() == Node.IN) {
            inCount++;
        } else {
            outCount++;
        }
    }
    info.setInCount(inCount);
    info.setOutCount(outCount);
    info.setMastUpGrade(NulsContext.mastUpGrade);
    Result result = Result.getSuccess();
    result.setData(info);
    return result.toRpcClientResult();
}
Also used : Node(io.nuls.network.model.Node) NetworkInfoDto(io.nuls.network.rpc.model.NetworkInfoDto) RpcClientResult(io.nuls.kernel.model.RpcClientResult) Result(io.nuls.kernel.model.Result) Path(javax.ws.rs.Path) Produces(javax.ws.rs.Produces) GET(javax.ws.rs.GET) ApiOperation(io.swagger.annotations.ApiOperation) ApiResponses(io.swagger.annotations.ApiResponses)

Example 22 with Node

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

the class NetworkResource method getPeers.

@GET
@Path("/peers")
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation("查询节点[3.7.2]")
@ApiResponses(value = { @ApiResponse(code = 200, message = "success", response = NodeDto.class) })
public RpcClientResult getPeers() {
    List<Node> nodeList = networkService.getCanConnectNodes();
    Result result = Result.getSuccess();
    List<NodeDto> dtoList = new ArrayList<>();
    for (Node node : nodeList) {
        NodeDto dto = new NodeDto();
        dto.setIp(node.getIp());
        dto.setPort(node.getPort());
        dtoList.add(dto);
    }
    Map<String, List<NodeDto>> map = new HashMap<>();
    map.put("list", dtoList);
    result.setData(map);
    return result.toRpcClientResult();
}
Also used : Node(io.nuls.network.model.Node) NodeDto(io.nuls.network.rpc.model.NodeDto) RpcClientResult(io.nuls.kernel.model.RpcClientResult) Result(io.nuls.kernel.model.Result) Path(javax.ws.rs.Path) Produces(javax.ws.rs.Produces) GET(javax.ws.rs.GET) ApiOperation(io.swagger.annotations.ApiOperation) ApiResponses(io.swagger.annotations.ApiResponses)

Example 23 with Node

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

the class NetworkResource method getNode.

@GET
@Path("/nodes")
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation("查询节点IP [3.7.2]")
@ApiResponses(value = { @ApiResponse(code = 200, message = "success", response = String[].class) })
public RpcClientResult getNode() {
    Set<String> ipSet = new HashSet<>();
    List<Node> nodeList = networkService.getCanConnectNodes();
    nodeList.addAll(networkService.getAvailableNodes());
    for (Node node : nodeList) {
        ipSet.add(node.getIp());
    }
    Result result = Result.getSuccess();
    Map<String, Set<String>> map = new HashMap<>();
    map.put("list", ipSet);
    result.setData(map);
    return result.toRpcClientResult();
}
Also used : Node(io.nuls.network.model.Node) RpcClientResult(io.nuls.kernel.model.RpcClientResult) Result(io.nuls.kernel.model.Result) Path(javax.ws.rs.Path) Produces(javax.ws.rs.Produces) GET(javax.ws.rs.GET) ApiOperation(io.swagger.annotations.ApiOperation) ApiResponses(io.swagger.annotations.ApiResponses)

Example 24 with Node

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

the class NodeMessageBody method serializeToStream.

/**
 * serialize important field
 */
@Override
protected void serializeToStream(NulsOutputStreamBuffer stream) throws IOException {
    int count = nodeList == null ? 0 : nodeList.size();
    stream.writeVarInt(count);
    if (null != nodeList) {
        for (Node node : nodeList) {
            stream.writeNulsData(node);
        }
    }
}
Also used : Node(io.nuls.network.model.Node)

Example 25 with Node

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

the class NodeMessageBody method size.

@Override
public int size() {
    int s = 0;
    s += SerializeUtils.sizeOfVarInt(nodeList == null ? 0 : nodeList.size());
    if (nodeList != null) {
        for (Node node : nodeList) {
            s += node.size();
        }
    }
    return s;
}
Also used : Node(io.nuls.network.model.Node)

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