From eab2210ffea8da83961fb83c24f32b61733849a5 Mon Sep 17 00:00:00 2001 From: Stanislav Bogatyrev Date: Thu, 3 Sep 2020 12:19:02 +0300 Subject: [PATCH] [#59] netmap: Add LocalNodeInfo request This should be used as a handshake to know API Version supported by peer and to update local netmap view in future. Signed-off-by: Stanislav Bogatyrev --- netmap/service.proto | 57 ++++++++++++++++++++++++++++ proto-docs/netmap.md | 89 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 146 insertions(+) create mode 100644 netmap/service.proto diff --git a/netmap/service.proto b/netmap/service.proto new file mode 100644 index 0000000..a388148 --- /dev/null +++ b/netmap/service.proto @@ -0,0 +1,57 @@ +syntax = "proto3"; + +package neo.fs.v2.netmap; + +option go_package = "github.com/nspcc-dev/neofs-api-go/v2/netmap/grpc;netmap"; +option csharp_namespace = "NeoFS.API.v2.Netmap"; + +import "netmap/types.proto"; +import "refs/types.proto"; +import "session/types.proto"; + +// Methods to work with NetworkMap +service NetmapService { + // Return information about Node + rpc LocalNodeInfo (LocalNodeInfoRequest) returns (LocalNodeInfoResponse); +} + +// Get NodeInfo from the particular node directly +message LocalNodeInfoRequest { + //Request body + message Body { + } + // Body of the balance request message. + Body body = 1; + + // Carries request meta information. Header data is used only to regulate + // message transport and does not affect request execution. + neo.fs.v2.session.RequestMetaHeader meta_header = 2; + + // Carries request verification information. This header is used to + // authenticate the nodes of the message route and check the correctness + // of transmission. + neo.fs.v2.session.RequestVerificationHeader verify_header = 3; +} + +// Local nod Info, including API Version in use +message LocalNodeInfoResponse { + //Response body + message Body { + // API version in use + neo.fs.v2.refs.Version version = 1; + + // NodeInfo from node itself + NodeInfo node_info = 2; + } + // Body of the balance response message. + Body body = 1; + + // Carries response meta information. Header data is used only to regulate + // message transport and does not affect response execution. + neo.fs.v2.session.ResponseMetaHeader meta_header = 2; + + // Carries response verification information. This header is used to + // authenticate the nodes of the message route and check the correctness + // of transmission. + neo.fs.v2.session.ResponseVerificationHeader verify_header = 3; +} diff --git a/proto-docs/netmap.md b/proto-docs/netmap.md index 5d1059d..9315cfe 100644 --- a/proto-docs/netmap.md +++ b/proto-docs/netmap.md @@ -3,6 +3,17 @@ ## Table of Contents +- [netmap/service.proto](#netmap/service.proto) + - Services + - [NetmapService](#neo.fs.v2.netmap.NetmapService) + + - Messages + - [LocalNodeInfoRequest](#neo.fs.v2.netmap.LocalNodeInfoRequest) + - [LocalNodeInfoRequest.Body](#neo.fs.v2.netmap.LocalNodeInfoRequest.Body) + - [LocalNodeInfoResponse](#neo.fs.v2.netmap.LocalNodeInfoResponse) + - [LocalNodeInfoResponse.Body](#neo.fs.v2.netmap.LocalNodeInfoResponse.Body) + + - [netmap/types.proto](#netmap/types.proto) - Messages @@ -18,6 +29,84 @@ + +

Top

+ +## netmap/service.proto + + + + + + +### Service "neo.fs.v2.netmap.NetmapService" +Methods to work with NetworkMap + +``` +rpc LocalNodeInfo(LocalNodeInfoRequest) returns (LocalNodeInfoResponse); + +``` + +#### Method LocalNodeInfo + +Return information about Node + +| Name | Input | Output | +| ---- | ----- | ------ | +| LocalNodeInfo | [LocalNodeInfoRequest](#neo.fs.v2.netmap.LocalNodeInfoRequest) | [LocalNodeInfoResponse](#neo.fs.v2.netmap.LocalNodeInfoResponse) | + + + + + +### Message LocalNodeInfoRequest +Get NodeInfo from the particular node directly + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| body | [LocalNodeInfoRequest.Body](#neo.fs.v2.netmap.LocalNodeInfoRequest.Body) | | Body of the balance request message. | +| meta_header | [neo.fs.v2.session.RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. | +| verify_header | [neo.fs.v2.session.RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. | + + + + +### Message LocalNodeInfoRequest.Body +Request body + + + + + +### Message LocalNodeInfoResponse +Local nod Info, including API Version in use + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| body | [LocalNodeInfoResponse.Body](#neo.fs.v2.netmap.LocalNodeInfoResponse.Body) | | Body of the balance response message. | +| meta_header | [neo.fs.v2.session.ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect response execution. | +| verify_header | [neo.fs.v2.session.ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. | + + + + +### Message LocalNodeInfoResponse.Body +Response body + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| version | [neo.fs.v2.refs.Version](#neo.fs.v2.refs.Version) | | API version in use | +| node_info | [NodeInfo](#neo.fs.v2.netmap.NodeInfo) | | NodeInfo from node itself | + + + + + + +

Top