Merge pull request #11 from nspcc-dev/prepare-for-new-release_add-protocol-version_update-doc-comments

Prepare for new release
This commit is contained in:
Evgeniy Kulikov 2019-11-21 16:19:55 +03:00 committed by GitHub
commit df861b28a4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 426 additions and 145 deletions

View file

@ -87,7 +87,8 @@ Balance returns current balance status of the NeoFS user
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| OwnerID | [bytes](#bytes) | | OwnerID is a wallet address |
| TTL | [uint32](#uint32) | | TTL must be larger than zero, it decreased in every neofs-node Deprecated: will be replaced with RequestMetaHeader (see develop branch) |
| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) |
| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) |
<a name="accounting.BalanceResponse"></a>
@ -362,7 +363,8 @@ Delete allows user to remove unused cheque
| OwnerID | [bytes](#bytes) | | OwnerID is a wallet address |
| MessageID | [bytes](#bytes) | | MessageID is a nonce for uniq request (UUIDv4) |
| Signature | [bytes](#bytes) | | Signature is a signature of the sent request |
| TTL | [uint32](#uint32) | | TTL must be larger than zero, it decreased in every neofs-node Deprecated: will be replaced with RequestMetaHeader (see develop branch) |
| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) |
| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) |
<a name="accounting.DeleteResponse"></a>
@ -382,7 +384,8 @@ DeleteResponse is empty
| ----- | ---- | ----- | ----------- |
| ID | [bytes](#bytes) | | ID is cheque identifier |
| OwnerID | [bytes](#bytes) | | OwnerID is a wallet address |
| TTL | [uint32](#uint32) | | TTL must be larger than zero, it decreased in every neofs-node Deprecated: will be replaced with RequestMetaHeader (see develop branch) |
| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) |
| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) |
<a name="accounting.GetResponse"></a>
@ -420,7 +423,8 @@ DeleteResponse is empty
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| OwnerID | [bytes](#bytes) | | OwnerID is a wallet address |
| TTL | [uint32](#uint32) | | TTL must be larger than zero, it decreased in every neofs-node Deprecated: will be replaced with RequestMetaHeader (see develop branch) |
| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) |
| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) |
<a name="accounting.ListResponse"></a>
@ -447,7 +451,8 @@ DeleteResponse is empty
| Height | [uint64](#uint64) | | Height is the neo blockchain height until the cheque is valid |
| MessageID | [bytes](#bytes) | | MessageID is a nonce for uniq request (UUIDv4) |
| Signature | [bytes](#bytes) | | Signature is a signature of the sent request |
| TTL | [uint32](#uint32) | | TTL must be larger than zero, it decreased in every neofs-node Deprecated: will be replaced with RequestMetaHeader (see develop branch) |
| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) |
| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) |
<a name="accounting.PutResponse"></a>

View file

@ -62,7 +62,8 @@ Process is method that allows to register node in the network and receive actual
| ----- | ---- | ----- | ----------- |
| type | [int32](#int32) | | Type is NodeType, can be InnerRingNode (type=1) or StorageNode (type=2) |
| info | [NodeInfo](#bootstrap.NodeInfo) | | Info contains information about node |
| TTL | [uint32](#uint32) | | TTL must be larger than zero, it decreased in every neofs-node Deprecated: will be replaced with RequestMetaHeader (see develop branch) |
| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) |
| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) |
<!-- end messages -->

View file

@ -92,8 +92,9 @@ List returns all user's containers
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| CID | [bytes](#bytes) | | CID (container id) is a SHA256 hash of the container structure |
| TTL | [uint32](#uint32) | | TTL must be larger than zero, it decreased in every neofs-node Deprecated: will be replaced with RequestMetaHeader (see develop branch) |
| Signature | [bytes](#bytes) | | Signature of the container owner |
| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) |
| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) |
<a name="container.DeleteResponse"></a>
@ -113,7 +114,8 @@ via consensus in inner ring nodes
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| CID | [bytes](#bytes) | | CID (container id) is a SHA256 hash of the container structure |
| TTL | [uint32](#uint32) | | TTL must be larger than zero, it decreased in every neofs-node Deprecated: will be replaced with RequestMetaHeader (see develop branch) |
| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) |
| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) |
<a name="container.GetResponse"></a>
@ -136,7 +138,8 @@ via consensus in inner ring nodes
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| OwnerID | [bytes](#bytes) | | OwnerID is a wallet address |
| TTL | [uint32](#uint32) | | TTL must be larger than zero, it decreased in every neofs-node Deprecated: will be replaced with RequestMetaHeader (see develop branch) |
| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) |
| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) |
<a name="container.ListResponse"></a>
@ -163,7 +166,8 @@ via consensus in inner ring nodes
| OwnerID | [bytes](#bytes) | | OwnerID is a wallet address |
| rules | [netmap.PlacementRule](#netmap.PlacementRule) | | Rules define storage policy for the object inside the container. |
| Signature | [bytes](#bytes) | | Signature of the user (owner id) |
| TTL | [uint32](#uint32) | | TTL must be larger than zero, it decreased in every neofs-node Deprecated: will be replaced with RequestMetaHeader (see develop branch) |
| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) |
| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) |
<a name="container.PutResponse"></a>

View file

@ -147,11 +147,11 @@ calculated for XORed data.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| Epoch | [uint64](#uint64) | | Epoch is set by user to 0, node set epoch to the actual value Deprecated: will be replaced with RequestMetaHeader (see develop branch) |
| Address | [refs.Address](#refs.Address) | | Address of object (container id + object id) |
| OwnerID | [bytes](#bytes) | | OwnerID is a wallet address |
| TTL | [uint32](#uint32) | | TTL must be larger than zero, it decreased in every neofs-node Deprecated: will be replaced with RequestMetaHeader (see develop branch) |
| Token | [session.Token](#session.Token) | | Token with session public key and user's signature |
| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) |
| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) |
<a name="object.DeleteResponse"></a>
@ -170,11 +170,11 @@ in distributed system.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| Epoch | [uint64](#uint64) | | Epoch is set by user to 0, node set epoch to the actual value Deprecated: will be replaced with RequestMetaHeader (see develop branch) |
| Address | [refs.Address](#refs.Address) | | Address of object (container id + object id) |
| Ranges | [Range](#object.Range) | repeated | Ranges of object's payload to calculate homomorphic hash |
| Salt | [bytes](#bytes) | | Salt is used to XOR object's payload ranges before hashing, it can be nil |
| TTL | [uint32](#uint32) | | TTL must be larger than zero, it decreased in every neofs-node Deprecated: will be replaced with RequestMetaHeader (see develop branch) |
| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) |
| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) |
<a name="object.GetRangeHashResponse"></a>
@ -196,10 +196,10 @@ in distributed system.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| Epoch | [uint64](#uint64) | | Epoch is set by user to 0, node set epoch to the actual value Deprecated: will be replaced with RequestMetaHeader (see develop branch) |
| Address | [refs.Address](#refs.Address) | | Address of object (container id + object id) |
| Ranges | [Range](#object.Range) | repeated | Ranges of object's payload to return |
| TTL | [uint32](#uint32) | | TTL must be larger than zero, it decreased in every neofs-node Deprecated: will be replaced with RequestMetaHeader (see develop branch) |
| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) |
| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) |
<a name="object.GetRangeResponse"></a>
@ -221,9 +221,9 @@ in distributed system.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| Epoch | [uint64](#uint64) | | Epoch is set by user to 0, node set epoch to the actual value Deprecated: will be replaced with RequestMetaHeader (see develop branch) |
| Address | [refs.Address](#refs.Address) | | Address of object (container id + object id) |
| TTL | [uint32](#uint32) | | TTL must be larger than zero, it decreased in every neofs-node Deprecated: will be replaced with RequestMetaHeader (see develop branch) |
| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) |
| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) |
<a name="object.GetResponse"></a>
@ -246,10 +246,10 @@ in distributed system.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| Epoch | [uint64](#uint64) | | Epoch should be empty on user side, node sets epoch to the actual value Deprecated: will be replaced with RequestMetaHeader (see develop branch) |
| Address | [refs.Address](#refs.Address) | | Address of object (container id + object id) |
| FullHeaders | [bool](#bool) | | FullHeaders can be set true for extended headers in the object |
| TTL | [uint32](#uint32) | | TTL must be larger than zero, it decreased in every neofs-node Deprecated: will be replaced with RequestMetaHeader (see develop branch) |
| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) |
| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) |
<a name="object.HeadResponse"></a>
@ -273,6 +273,8 @@ in distributed system.
| ----- | ---- | ----- | ----------- |
| Header | [PutRequest.PutHeader](#object.PutRequest.PutHeader) | | Header should be the first message in the stream |
| Chunk | [bytes](#bytes) | | Chunk should be a remaining message in stream should be chunks |
| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) |
| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) |
<a name="object.PutRequest.PutHeader"></a>
@ -283,9 +285,7 @@ in distributed system.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| Epoch | [uint64](#uint64) | | Epoch is set by user to 0, node set epoch to the actual value Deprecated: will be replaced with RequestMetaHeader (see develop branch) |
| Object | [Object](#object.Object) | | Object with at least container id and owner id fields |
| TTL | [uint32](#uint32) | | TTL must be larger than zero, it decreased in every neofs-node Deprecated: will be replaced with RequestMetaHeader (see develop branch) |
| Token | [session.Token](#session.Token) | | Token with session public key and user's signature |
@ -308,11 +308,11 @@ in distributed system.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| Epoch | [uint64](#uint64) | | Epoch is set by user to 0, node set epoch to the actual value Deprecated: will be replaced with RequestMetaHeader (see develop branch) |
| Version | [uint32](#uint32) | | Version of search query format |
| ContainerID | [bytes](#bytes) | | ContainerID for searching the object |
| Query | [bytes](#bytes) | | Query in the binary serialized format |
| TTL | [uint32](#uint32) | | TTL must be larger than zero, it decreased in every neofs-node Deprecated: will be replaced with RequestMetaHeader (see develop branch) |
| QueryVersion | [uint32](#uint32) | | QueryVersion is a version of search query format |
| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) |
| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) |
<a name="object.SearchResponse"></a>

157
docs/service.md Normal file
View file

@ -0,0 +1,157 @@
# Protocol Documentation
<a name="top"></a>
## Table of Contents
- [service/meta.proto](#service/meta.proto)
- Messages
- [RequestMetaHeader](#service.RequestMetaHeader)
- [service/verify.proto](#service/verify.proto)
- Messages
- [RequestVerificationHeader](#service.RequestVerificationHeader)
- [RequestVerificationHeader.Sign](#service.RequestVerificationHeader.Sign)
- [RequestVerificationHeader.Signature](#service.RequestVerificationHeader.Signature)
- [service/verify_test.proto](#service/verify_test.proto)
- Messages
- [TestRequest](#service.TestRequest)
- [Scalar Value Types](#scalar-value-types)
<a name="service/meta.proto"></a>
<p align="right"><a href="#top">Top</a></p>
## service/meta.proto
<!-- end services -->
<a name="service.RequestMetaHeader"></a>
### Message RequestMetaHeader
RequestMetaHeader contains information about request meta headers
(should be embedded into message)
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| TTL | [uint32](#uint32) | | TTL must be larger than zero, it decreased in every NeoFS Node |
| Epoch | [uint64](#uint64) | | Epoch for user can be empty, because node sets epoch to the actual value |
| Version | [uint32](#uint32) | | Version defines protocol version TODO: not used for now, should be implemented in future |
<!-- end messages -->
<!-- end enums -->
<a name="service/verify.proto"></a>
<p align="right"><a href="#top">Top</a></p>
## service/verify.proto
<!-- end services -->
<a name="service.RequestVerificationHeader"></a>
### Message RequestVerificationHeader
RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request
(should be embedded into message).
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| Signatures | [RequestVerificationHeader.Signature](#service.RequestVerificationHeader.Signature) | repeated | Signatures is a set of signatures of every passed NeoFS Node |
<a name="service.RequestVerificationHeader.Sign"></a>
### Message RequestVerificationHeader.Sign
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| Sign | [bytes](#bytes) | | Sign is signature of the request or session key. |
| Peer | [bytes](#bytes) | | Peer is compressed public key used for signature. |
<a name="service.RequestVerificationHeader.Signature"></a>
### Message RequestVerificationHeader.Signature
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| Sign | [RequestVerificationHeader.Sign](#service.RequestVerificationHeader.Sign) | | Sign is a signature and public key of the request. |
| Origin | [RequestVerificationHeader.Sign](#service.RequestVerificationHeader.Sign) | | Origin used for requests, when trusted node changes it and re-sign with session key. If session key used for signature request, then Origin should contain public key of user and signed session key. |
<!-- end messages -->
<!-- end enums -->
<a name="service/verify_test.proto"></a>
<p align="right"><a href="#top">Top</a></p>
## service/verify_test.proto
<!-- end services -->
<a name="service.TestRequest"></a>
### Message TestRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| IntField | [int32](#int32) | | |
| StringField | [string](#string) | | |
| BytesField | [bytes](#bytes) | | |
| CustomField | [bytes](#bytes) | | |
| Meta | [RequestMetaHeader](#service.RequestMetaHeader) | | |
| Header | [RequestVerificationHeader](#service.RequestVerificationHeader) | | |
<!-- end messages -->
<!-- end enums -->
## Scalar Value Types
| .proto Type | Notes | C++ Type | Java Type | Python Type |
| ----------- | ----- | -------- | --------- | ----------- |
| <a name="double" /> double | | double | double | float |
| <a name="float" /> float | | float | float | float |
| <a name="int32" /> int32 | Uses variable-length encoding. Inefficient for encoding negative numbers if your field is likely to have negative values, use sint32 instead. | int32 | int | int |
| <a name="int64" /> int64 | Uses variable-length encoding. Inefficient for encoding negative numbers if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long |
| <a name="uint32" /> uint32 | Uses variable-length encoding. | uint32 | int | int/long |
| <a name="uint64" /> uint64 | Uses variable-length encoding. | uint64 | long | int/long |
| <a name="sint32" /> sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int |
| <a name="sint64" /> sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long |
| <a name="fixed32" /> fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int |
| <a name="fixed64" /> fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long |
| <a name="sfixed32" /> sfixed32 | Always four bytes. | int32 | int | int |
| <a name="sfixed64" /> sfixed64 | Always eight bytes. | int64 | long | int/long |
| <a name="bool" /> bool | | bool | boolean | boolean |
| <a name="string" /> string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode |
| <a name="bytes" /> bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str |

View file

@ -70,6 +70,8 @@ session key. Session is established during 4-step handshake in one gRPC stream
| ----- | ---- | ----- | ----------- |
| Init | [Token](#session.Token) | | Init is a message to initialize session opening. Carry: owner of manipulation object; ID of manipulation object; token lifetime bounds. |
| Signed | [Token](#session.Token) | | Signed Init message response (Unsigned) from server with user private key |
| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) |
| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) |
<a name="session.CreateResponse"></a>

View file

@ -70,6 +70,11 @@ If node unhealthy field Status would contains detailed info.
HealthRequest message to check current state
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) |
| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) |
<a name="state.HealthResponse"></a>
@ -89,6 +94,11 @@ HealthResponse message with current state
MetricsRequest message to request node metrics
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) |
| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) |
<a name="state.MetricsResponse"></a>
@ -109,6 +119,11 @@ from github.com/prometheus/client_model/metrics.proto
NetmapRequest message to request current node netmap
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) |
| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) |
<!-- end messages -->
<!-- end enums -->

View file

@ -538,12 +538,12 @@ func (m *HeadResponse) GetObject() *Object {
}
type SearchRequest struct {
// Version of search query format
Version uint32 `protobuf:"varint,1,opt,name=Version,proto3" json:"Version,omitempty"`
// ContainerID for searching the object
ContainerID CID `protobuf:"bytes,2,opt,name=ContainerID,proto3,customtype=CID" json:"ContainerID"`
ContainerID CID `protobuf:"bytes,1,opt,name=ContainerID,proto3,customtype=CID" json:"ContainerID"`
// Query in the binary serialized format
Query []byte `protobuf:"bytes,3,opt,name=Query,proto3" json:"Query,omitempty"`
Query []byte `protobuf:"bytes,2,opt,name=Query,proto3" json:"Query,omitempty"`
// QueryVersion is a version of search query format
QueryVersion uint32 `protobuf:"varint,3,opt,name=QueryVersion,proto3" json:"QueryVersion,omitempty"`
// RequestMetaHeader contains information about request meta headers (should be embedded into message)
service.RequestMetaHeader `protobuf:"bytes,98,opt,name=Meta,proto3,embedded=Meta" json:"Meta"`
// RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message)
@ -582,13 +582,6 @@ func (m *SearchRequest) XXX_DiscardUnknown() {
var xxx_messageInfo_SearchRequest proto.InternalMessageInfo
func (m *SearchRequest) GetVersion() uint32 {
if m != nil {
return m.Version
}
return 0
}
func (m *SearchRequest) GetQuery() []byte {
if m != nil {
return m.Query
@ -596,6 +589,13 @@ func (m *SearchRequest) GetQuery() []byte {
return nil
}
func (m *SearchRequest) GetQueryVersion() uint32 {
if m != nil {
return m.QueryVersion
}
return 0
}
type SearchResponse struct {
// Addresses of found objects
Addresses []refs.Address `protobuf:"bytes,1,rep,name=Addresses,proto3" json:"Addresses"`
@ -865,59 +865,59 @@ func init() {
func init() { proto.RegisterFile("object/service.proto", fileDescriptor_dfcdf610ade6a9ce) }
var fileDescriptor_dfcdf610ade6a9ce = []byte{
// 827 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0xcd, 0x4e, 0x1b, 0x49,
0x10, 0xf6, 0xd8, 0x66, 0x0c, 0x65, 0x1b, 0x50, 0xe3, 0x65, 0xad, 0x59, 0x64, 0xd0, 0x08, 0xed,
0x7a, 0xb5, 0xf2, 0x98, 0x25, 0x12, 0x70, 0x80, 0x43, 0x6c, 0x0b, 0xcc, 0x21, 0x82, 0x0c, 0x08,
0x29, 0xb9, 0x8d, 0xc7, 0xed, 0x9f, 0x60, 0x66, 0x9c, 0xf9, 0x21, 0xe2, 0x01, 0x72, 0xce, 0x35,
0x87, 0xbc, 0x49, 0xf2, 0x00, 0x1c, 0x39, 0x46, 0x39, 0xa0, 0xc8, 0x39, 0xe5, 0x90, 0x3c, 0x43,
0x34, 0xdd, 0xd5, 0x9e, 0xb1, 0x09, 0x24, 0xe1, 0x10, 0x9f, 0xdc, 0xf5, 0xd5, 0x57, 0x55, 0x5d,
0x5f, 0x57, 0xb7, 0x07, 0x72, 0x76, 0xe3, 0x19, 0x35, 0xbd, 0xb2, 0x4b, 0x9d, 0xf3, 0xae, 0x49,
0xb5, 0xbe, 0x63, 0x7b, 0x36, 0x91, 0x39, 0xaa, 0xcc, 0x3b, 0xb4, 0xe5, 0x96, 0xbd, 0x8b, 0x3e,
0x75, 0xb9, 0x47, 0x21, 0xc8, 0x8f, 0x62, 0x0b, 0x2e, 0x75, 0xdd, 0xae, 0x6d, 0x8d, 0x12, 0x31,
0x63, 0xf9, 0x8c, 0x7a, 0x06, 0x62, 0x39, 0x81, 0x9d, 0x53, 0xa7, 0xdb, 0xba, 0x40, 0xb4, 0xd4,
0xee, 0x7a, 0x1d, 0xbf, 0xa1, 0x99, 0xf6, 0x59, 0xb9, 0x6d, 0xb7, 0xed, 0x32, 0x83, 0x1b, 0x7e,
0x8b, 0x59, 0xcc, 0x60, 0x2b, 0x4e, 0x57, 0xdf, 0x4a, 0x00, 0x7b, 0xd4, 0xd3, 0xe9, 0x73, 0x9f,
0xba, 0x1e, 0x29, 0x41, 0xea, 0x61, 0xb3, 0xe9, 0x50, 0xd7, 0xcd, 0x4b, 0x2b, 0x52, 0x31, 0xbd,
0x9e, 0xd5, 0x82, 0x4d, 0x6b, 0x08, 0x56, 0x92, 0x97, 0xd7, 0xcb, 0x31, 0x5d, 0x70, 0xc8, 0x16,
0x24, 0x1f, 0x51, 0xcf, 0xc8, 0x37, 0x18, 0x57, 0xd1, 0x44, 0xdf, 0x98, 0x2e, 0xf0, 0xd5, 0xa9,
0xd1, 0xa4, 0x4e, 0x65, 0x3a, 0x08, 0xbc, 0xba, 0x5e, 0x96, 0x74, 0x16, 0x41, 0x6a, 0x20, 0x9f,
0xb0, 0x6d, 0xe7, 0x4d, 0x16, 0xab, 0x8e, 0xc7, 0x32, 0x6f, 0xd7, 0x34, 0xbc, 0xae, 0x6d, 0xdd,
0xc8, 0x81, 0xb1, 0xea, 0x31, 0xa4, 0xd9, 0xe6, 0xdd, 0xbe, 0x6d, 0xb9, 0x94, 0x14, 0x01, 0xa5,
0xc6, 0xcd, 0xcf, 0x6a, 0xdc, 0xd4, 0x0e, 0xd8, 0x4f, 0x3d, 0xa6, 0xa3, 0x9f, 0x2c, 0xc2, 0x54,
0xb5, 0xe3, 0x5b, 0xa7, 0xf9, 0xf8, 0x8a, 0x54, 0xcc, 0xd4, 0x63, 0x3a, 0x37, 0x2b, 0x09, 0x90,
0x74, 0xf5, 0x5d, 0x1c, 0xe0, 0xd0, 0x1f, 0x6a, 0xb2, 0x01, 0x32, 0xdf, 0x00, 0x66, 0x5d, 0x12,
0x59, 0x43, 0x4e, 0xb0, 0xe4, 0x9c, 0xa0, 0x06, 0x5f, 0xdd, 0x56, 0x63, 0xd2, 0xa2, 0x29, 0x4f,
0x60, 0x66, 0xb8, 0x5d, 0xf2, 0x37, 0xc8, 0x07, 0x77, 0x48, 0xa6, 0xa3, 0x97, 0xac, 0xc2, 0xd4,
0xb1, 0x7d, 0x4a, 0x2d, 0xd6, 0x4c, 0x40, 0xc3, 0x29, 0xd5, 0x18, 0xaa, 0x73, 0x27, 0x97, 0x6f,
0x1b, 0xd2, 0x4c, 0x19, 0x3c, 0x94, 0x5f, 0x1b, 0x29, 0xf5, 0x55, 0x1c, 0xb2, 0x35, 0xda, 0xa3,
0x1e, 0xbd, 0xe7, 0x4c, 0xfe, 0x0b, 0xa9, 0x83, 0x17, 0x16, 0x75, 0xf6, 0x6b, 0x5c, 0xf8, 0xca,
0x5c, 0xe0, 0xff, 0x70, 0xbd, 0x2c, 0x60, 0x5d, 0x2c, 0xc2, 0xa6, 0x12, 0x77, 0x34, 0x35, 0xf1,
0x21, 0x9f, 0x87, 0x59, 0x21, 0x08, 0x97, 0x54, 0xfd, 0x2c, 0x41, 0x3a, 0xa0, 0x0b, 0x85, 0xb6,
0x7e, 0xa0, 0xd0, 0x50, 0x01, 0x04, 0x42, 0xb1, 0x56, 0x20, 0xbd, 0xeb, 0xf7, 0x7a, 0xbc, 0xb6,
0xcb, 0x04, 0x9b, 0xd6, 0xa3, 0xd0, 0xc4, 0xbb, 0xdf, 0x80, 0x0c, 0x6f, 0x15, 0xc7, 0xe9, 0x27,
0x07, 0x56, 0xfd, 0x2a, 0x41, 0xf6, 0x88, 0x1a, 0x8e, 0xd9, 0x11, 0x2a, 0xe5, 0x21, 0x75, 0x42,
0x9d, 0xe0, 0x7c, 0x59, 0x68, 0x56, 0x17, 0x26, 0x29, 0x41, 0xba, 0x6a, 0x5b, 0x9e, 0xd1, 0x8d,
0x8e, 0x4d, 0x1a, 0x45, 0x4b, 0x54, 0xf7, 0x6b, 0x7a, 0xd4, 0x4f, 0x72, 0x30, 0xf5, 0xd8, 0xa7,
0xce, 0x05, 0x1b, 0x9b, 0x8c, 0xce, 0x8d, 0x89, 0x0b, 0x55, 0x85, 0x59, 0xd1, 0x2f, 0x4a, 0xf5,
0x3f, 0xcc, 0xe0, 0x39, 0xd3, 0x60, 0x30, 0x12, 0xb7, 0x5d, 0x9d, 0x90, 0xa5, 0x7e, 0x91, 0x60,
0x2e, 0x78, 0x51, 0x0d, 0xab, 0x7d, 0xdf, 0xfb, 0xf7, 0x1f, 0xc8, 0x2c, 0x3c, 0x98, 0x26, 0x5e,
0x12, 0x0f, 0x88, 0xa1, 0xc8, 0x46, 0xca, 0xc4, 0x45, 0x5b, 0x83, 0xf9, 0xb0, 0x5d, 0x94, 0x6d,
0x09, 0x66, 0x76, 0x1d, 0xa3, 0x7d, 0x46, 0x2d, 0x8f, 0xcb, 0x96, 0xd1, 0x43, 0x40, 0x7d, 0x19,
0x87, 0x05, 0x11, 0x52, 0x37, 0xdc, 0xce, 0xef, 0x50, 0x89, 0x40, 0xf2, 0xc8, 0xe8, 0x79, 0x38,
0x6f, 0x6c, 0x3d, 0x71, 0xe5, 0xb6, 0x21, 0x37, 0x2a, 0x03, 0xaa, 0xb7, 0x0a, 0x72, 0x60, 0xe3,
0xc4, 0x65, 0x2a, 0x19, 0xbc, 0x46, 0x49, 0xc6, 0x42, 0xdf, 0xfa, 0x9b, 0x04, 0xa4, 0x8e, 0x78,
0x55, 0xb2, 0x06, 0x89, 0x3d, 0xea, 0x11, 0x22, 0x14, 0x08, 0x3f, 0x47, 0x94, 0x85, 0x11, 0x8c,
0x57, 0x58, 0x93, 0x82, 0x88, 0x43, 0x3f, 0x12, 0x11, 0xfe, 0x11, 0x87, 0x11, 0x91, 0xbf, 0xa0,
0xa2, 0x44, 0x36, 0x41, 0xe6, 0x6f, 0x28, 0xf9, 0x43, 0x10, 0x46, 0xfe, 0x64, 0x94, 0xc5, 0x71,
0x78, 0x78, 0x87, 0x92, 0x81, 0x04, 0x64, 0x98, 0x37, 0xf2, 0xee, 0x2a, 0xb9, 0x51, 0x10, 0x43,
0x36, 0x41, 0xe6, 0x17, 0x31, 0xac, 0x35, 0xf2, 0x10, 0x85, 0xb5, 0xc6, 0xee, 0xeb, 0x0e, 0x4c,
0x0b, 0x49, 0xc9, 0x9f, 0xd1, 0xce, 0x23, 0xb7, 0x51, 0xc9, 0xdf, 0x74, 0x60, 0xf8, 0x3e, 0x64,
0xa2, 0x27, 0x42, 0xfe, 0x1a, 0x67, 0x46, 0xc6, 0x55, 0x59, 0xfa, 0xbe, 0x93, 0xa7, 0xaa, 0xec,
0x5c, 0x0e, 0x0a, 0xd2, 0xd5, 0xa0, 0x20, 0xbd, 0x1f, 0x14, 0xa4, 0x8f, 0x83, 0x82, 0xf4, 0xfa,
0x53, 0x21, 0xf6, 0xf4, 0x9f, 0xc8, 0xa7, 0xa5, 0xe5, 0xf6, 0x4d, 0xb3, 0xd4, 0xa4, 0xe7, 0x65,
0x8b, 0xda, 0x2d, 0xb7, 0xc4, 0x3f, 0x2c, 0x79, 0xce, 0x86, 0xcc, 0xac, 0x07, 0xdf, 0x02, 0x00,
0x00, 0xff, 0xff, 0x96, 0xdf, 0x01, 0x74, 0x0f, 0x0b, 0x00, 0x00,
// 831 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0xcf, 0x4f, 0xdb, 0x48,
0x14, 0xce, 0x24, 0xc1, 0xc0, 0x8b, 0x03, 0x68, 0xc8, 0xb2, 0x91, 0x17, 0x05, 0x64, 0xa1, 0xdd,
0xac, 0x56, 0x71, 0x58, 0x56, 0x02, 0x0e, 0x70, 0xd8, 0x24, 0x82, 0x70, 0x58, 0xc1, 0x1a, 0x84,
0xd4, 0xde, 0x1c, 0x67, 0xf2, 0xa3, 0x04, 0x3b, 0xf5, 0xd8, 0x54, 0xfc, 0x01, 0x3d, 0xf7, 0xda,
0x43, 0xff, 0x93, 0xf6, 0x0f, 0xe0, 0xc8, 0xb1, 0xea, 0x01, 0x55, 0xe9, 0xa9, 0x87, 0xde, 0x7b,
0xac, 0xe6, 0x87, 0x63, 0x27, 0x14, 0xda, 0x72, 0x68, 0x4e, 0x99, 0xf9, 0xde, 0xf7, 0xde, 0x9b,
0xf7, 0xf9, 0x1b, 0xc7, 0x90, 0x73, 0x1b, 0x4f, 0x88, 0xed, 0x97, 0x29, 0xf1, 0x2e, 0xba, 0x36,
0x31, 0xfa, 0x9e, 0xeb, 0xbb, 0x58, 0x11, 0xa8, 0xb6, 0xe0, 0x91, 0x16, 0x2d, 0xfb, 0x97, 0x7d,
0x42, 0x45, 0x44, 0xc3, 0x92, 0x1f, 0xc7, 0x16, 0x29, 0xa1, 0xb4, 0xeb, 0x3a, 0xa3, 0x44, 0x59,
0xb1, 0x7c, 0x4e, 0x7c, 0x4b, 0x62, 0xb9, 0x10, 0xbb, 0x20, 0x5e, 0xb7, 0x75, 0x29, 0xd1, 0x52,
0xbb, 0xeb, 0x77, 0x82, 0x86, 0x61, 0xbb, 0xe7, 0xe5, 0xb6, 0xdb, 0x76, 0xcb, 0x1c, 0x6e, 0x04,
0x2d, 0xbe, 0xe3, 0x1b, 0xbe, 0x12, 0x74, 0xfd, 0x35, 0x02, 0xd8, 0x27, 0xbe, 0x49, 0x9e, 0x06,
0x84, 0xfa, 0xb8, 0x04, 0xd3, 0xff, 0x36, 0x9b, 0x1e, 0xa1, 0x34, 0x8f, 0x56, 0x51, 0x31, 0xb3,
0x91, 0x35, 0xd8, 0xa1, 0x0d, 0x09, 0x56, 0xd2, 0x57, 0x37, 0x2b, 0x09, 0x33, 0xe4, 0xe0, 0x6d,
0x48, 0xff, 0x47, 0x7c, 0x2b, 0xdf, 0xe0, 0x5c, 0xcd, 0x08, 0xe7, 0x96, 0xe5, 0x58, 0xac, 0x4e,
0xac, 0x26, 0xf1, 0x2a, 0x33, 0x2c, 0xf1, 0xfa, 0x66, 0x05, 0x99, 0x3c, 0x03, 0xd7, 0x40, 0x39,
0xe5, 0xc7, 0xce, 0xdb, 0x3c, 0x57, 0x1f, 0xcf, 0xe5, 0xd1, 0xae, 0x6d, 0xf9, 0x5d, 0xd7, 0xb9,
0x55, 0x43, 0xe6, 0xea, 0x27, 0x90, 0xe1, 0x87, 0xa7, 0x7d, 0xd7, 0xa1, 0x04, 0x17, 0x41, 0x4a,
0x2d, 0x0f, 0x3f, 0x67, 0x88, 0xad, 0x71, 0xc8, 0x7f, 0xea, 0x09, 0x53, 0xc6, 0xf1, 0x12, 0x4c,
0x55, 0x3b, 0x81, 0x73, 0x96, 0x4f, 0xae, 0xa2, 0xa2, 0x5a, 0x4f, 0x98, 0x62, 0x5b, 0x49, 0x01,
0x32, 0xf5, 0x37, 0x49, 0x80, 0xa3, 0x60, 0xa8, 0xc9, 0x26, 0x28, 0xe2, 0x00, 0xb2, 0xea, 0x72,
0x58, 0x35, 0xe2, 0xb0, 0xa5, 0xe0, 0xb0, 0x1e, 0x62, 0x75, 0x57, 0x8f, 0x49, 0x8b, 0xa6, 0x3d,
0x82, 0xd9, 0xe1, 0x71, 0xf1, 0xef, 0xa0, 0x1c, 0xde, 0x23, 0x99, 0x29, 0xa3, 0x78, 0x0d, 0xa6,
0x4e, 0xdc, 0x33, 0xe2, 0xf0, 0x61, 0x18, 0x4d, 0xba, 0xd4, 0xe0, 0xa8, 0x29, 0x82, 0x42, 0xbe,
0x1d, 0xc8, 0x70, 0x65, 0xe4, 0x43, 0xf9, 0x31, 0x4b, 0xe9, 0x2f, 0x92, 0x90, 0xad, 0x91, 0x1e,
0xf1, 0xc9, 0x03, 0x3d, 0xf9, 0x27, 0x4c, 0x1f, 0x3e, 0x73, 0x88, 0x77, 0x50, 0x13, 0xc2, 0x57,
0xe6, 0x59, 0xfc, 0xdd, 0xcd, 0x4a, 0x08, 0x9b, 0xe1, 0x22, 0x1a, 0x2a, 0x75, 0xcf, 0x50, 0x13,
0x37, 0xf9, 0x02, 0xcc, 0x85, 0x82, 0x08, 0x49, 0xf5, 0x8f, 0x08, 0x32, 0x8c, 0x1e, 0x2a, 0xb4,
0xfd, 0x0d, 0x85, 0x86, 0x0a, 0x48, 0x20, 0x12, 0x6b, 0x15, 0x32, 0x7b, 0x41, 0xaf, 0x27, 0x7a,
0x53, 0x2e, 0xd8, 0x8c, 0x19, 0x87, 0x26, 0x3e, 0xfd, 0x26, 0xa8, 0x62, 0x54, 0x69, 0xa7, 0xef,
0x34, 0xac, 0xfe, 0x19, 0x41, 0xf6, 0x98, 0x58, 0x9e, 0xdd, 0x89, 0x7c, 0x94, 0xa9, 0xba, 0x8e,
0x6f, 0x75, 0x85, 0x39, 0x10, 0x37, 0x47, 0x46, 0x4a, 0x93, 0xaa, 0x1e, 0xd4, 0xcc, 0x78, 0x1c,
0xe7, 0x60, 0xea, 0xff, 0x80, 0x78, 0x97, 0xc2, 0x45, 0xa6, 0xd8, 0x60, 0x1d, 0x54, 0xbe, 0x38,
0x25, 0x1e, 0x73, 0x0a, 0x77, 0x4e, 0xd6, 0x1c, 0xc1, 0x26, 0x2e, 0x59, 0x15, 0xe6, 0xc2, 0xc9,
0xa5, 0x68, 0x7f, 0xc3, 0xac, 0x7c, 0xe2, 0x84, 0x59, 0x24, 0x75, 0xd7, 0x25, 0x8a, 0x58, 0xfa,
0x27, 0x04, 0xf3, 0xec, 0xdd, 0x6a, 0x39, 0xed, 0x87, 0xde, 0xc4, 0xbf, 0x40, 0xe1, 0xe9, 0xcc,
0x57, 0xa2, 0xa5, 0x7c, 0x54, 0x1c, 0x95, 0x6c, 0x49, 0x99, 0xb8, 0x68, 0xeb, 0xb0, 0x10, 0x8d,
0x2b, 0x65, 0x5b, 0x86, 0xd9, 0x3d, 0xcf, 0x6a, 0x9f, 0x13, 0xc7, 0x17, 0xb2, 0xa9, 0x66, 0x04,
0xe8, 0xcf, 0x93, 0xb0, 0x18, 0xa6, 0xd4, 0x2d, 0xda, 0xf9, 0x19, 0x2a, 0x61, 0x48, 0x1f, 0x5b,
0x3d, 0x9f, 0xdb, 0x4e, 0x35, 0xf9, 0x7a, 0xe2, 0xca, 0xed, 0x40, 0x6e, 0x54, 0x06, 0xa9, 0xde,
0x1a, 0x28, 0x6c, 0x2f, 0x1d, 0xa7, 0x56, 0x54, 0x79, 0xd5, 0xd2, 0x9c, 0x25, 0x63, 0x1b, 0xaf,
0x52, 0x30, 0x7d, 0x2c, 0xba, 0xe2, 0x75, 0x48, 0xed, 0x13, 0x1f, 0xe3, 0x50, 0x81, 0xe8, 0xc3,
0x44, 0x5b, 0x1c, 0xc1, 0x44, 0x87, 0x75, 0xc4, 0x32, 0x8e, 0x82, 0x58, 0x46, 0xf4, 0x97, 0x1c,
0x65, 0xc4, 0xfe, 0x8c, 0x8a, 0x08, 0x6f, 0x81, 0x22, 0xde, 0xa6, 0xf8, 0x97, 0x90, 0x30, 0xf2,
0x77, 0xa3, 0x2d, 0x8d, 0xc3, 0xc3, 0x3b, 0x94, 0x66, 0x12, 0xe0, 0x61, 0xdd, 0xd8, 0x1b, 0x58,
0xcb, 0x8d, 0x82, 0x32, 0x65, 0x0b, 0x14, 0x71, 0x11, 0xa3, 0x5e, 0x23, 0xaf, 0xa4, 0xa8, 0xd7,
0xd8, 0x7d, 0xdd, 0x85, 0x99, 0x50, 0x52, 0xfc, 0x6b, 0x7c, 0xf2, 0xd8, 0x6d, 0xd4, 0xf2, 0xb7,
0x03, 0x32, 0xfd, 0x00, 0xd4, 0xf8, 0x13, 0xc1, 0xbf, 0x8d, 0x33, 0x63, 0x76, 0xd5, 0x96, 0xbf,
0x1e, 0x14, 0xa5, 0x2a, 0xbb, 0x57, 0x83, 0x02, 0xba, 0x1e, 0x14, 0xd0, 0xdb, 0x41, 0x01, 0xbd,
0x1f, 0x14, 0xd0, 0xcb, 0x0f, 0x85, 0xc4, 0xe3, 0x3f, 0x62, 0x1f, 0x99, 0x0e, 0xed, 0xdb, 0x76,
0xa9, 0x49, 0x2e, 0xca, 0x0e, 0x71, 0x5b, 0xb4, 0x24, 0x3e, 0x31, 0x45, 0xcd, 0x86, 0xc2, 0x77,
0xff, 0x7c, 0x09, 0x00, 0x00, 0xff, 0xff, 0x56, 0x6d, 0x00, 0xd5, 0x19, 0x0b, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@ -1913,12 +1913,17 @@ func (m *SearchRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
dAtA[i] = 0x6
i--
dAtA[i] = 0x92
if m.QueryVersion != 0 {
i = encodeVarintService(dAtA, i, uint64(m.QueryVersion))
i--
dAtA[i] = 0x18
}
if len(m.Query) > 0 {
i -= len(m.Query)
copy(dAtA[i:], m.Query)
i = encodeVarintService(dAtA, i, uint64(len(m.Query)))
i--
dAtA[i] = 0x1a
dAtA[i] = 0x12
}
{
size := m.ContainerID.Size()
@ -1929,12 +1934,7 @@ func (m *SearchRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i = encodeVarintService(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x12
if m.Version != 0 {
i = encodeVarintService(dAtA, i, uint64(m.Version))
i--
dAtA[i] = 0x8
}
dAtA[i] = 0xa
return len(dAtA) - i, nil
}
@ -2437,15 +2437,15 @@ func (m *SearchRequest) Size() (n int) {
}
var l int
_ = l
if m.Version != 0 {
n += 1 + sovService(uint64(m.Version))
}
l = m.ContainerID.Size()
n += 1 + l + sovService(uint64(l))
l = len(m.Query)
if l > 0 {
n += 1 + l + sovService(uint64(l))
}
if m.QueryVersion != 0 {
n += 1 + sovService(uint64(m.QueryVersion))
}
l = m.RequestMetaHeader.Size()
n += 2 + l + sovService(uint64(l))
l = m.RequestVerificationHeader.Size()
@ -3813,25 +3813,6 @@ func (m *SearchRequest) Unmarshal(dAtA []byte) error {
}
switch fieldNum {
case 1:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
}
m.Version = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowService
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.Version |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
}
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ContainerID", wireType)
}
@ -3864,7 +3845,7 @@ func (m *SearchRequest) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
case 3:
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Query", wireType)
}
@ -3898,6 +3879,25 @@ func (m *SearchRequest) Unmarshal(dAtA []byte) error {
m.Query = []byte{}
}
iNdEx = postIndex
case 3:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field QueryVersion", wireType)
}
m.QueryVersion = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowService
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.QueryVersion |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
}
case 98:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field RequestMetaHeader", wireType)

View file

@ -129,12 +129,12 @@ message HeadResponse {
}
message SearchRequest {
// Version of search query format
uint32 Version = 1;
// ContainerID for searching the object
bytes ContainerID = 2 [(gogoproto.nullable) = false, (gogoproto.customtype) = "CID"];
bytes ContainerID = 1 [(gogoproto.nullable) = false, (gogoproto.customtype) = "CID"];
// Query in the binary serialized format
bytes Query = 3;
bytes Query = 2;
// QueryVersion is a version of search query format
uint32 QueryVersion = 3;
// RequestMetaHeader contains information about request meta headers (should be embedded into message)
service.RequestMetaHeader Meta = 98 [(gogoproto.embed) = true, (gogoproto.nullable) = false];
// RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message)

View file

@ -10,6 +10,7 @@ type (
// MetaHeader contains meta information of request.
// It provides methods to get or set meta information meta header.
// Also contains methods to reset and restore meta header.
// Also contains methods to get or set request protocol version
MetaHeader interface {
ResetMeta() RequestMetaHeader
RestoreMeta(RequestMetaHeader)
@ -20,7 +21,16 @@ type (
// EpochRequest gives possibility to get or set epoch in RPC Requests.
GetEpoch() uint64
SetEpoch(v uint64)
SetEpoch(uint64)
// VersionHeader allows get or set version of protocol request
VersionHeader
}
// VersionHeader allows get or set version of protocol request
VersionHeader interface {
GetVersion() uint32
SetVersion(uint32)
}
// TTLCondition is closure, that allows to validate request with ttl.
@ -46,6 +56,9 @@ const (
ErrIncorrectTTL = internal.Error("incorrect ttl")
)
// SetVersion sets protocol version to RequestMetaHeader.
func (m *RequestMetaHeader) SetVersion(v uint32) { m.Version = v }
// SetTTL sets TTL to RequestMetaHeader.
func (m *RequestMetaHeader) SetTTL(v uint32) { m.TTL = v }

View file

@ -23,9 +23,16 @@ var _ = math.Inf
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
// RequestMetaHeader contains information about request meta headers
// (should be embedded into message)
type RequestMetaHeader struct {
// TTL must be larger than zero, it decreased in every NeoFS Node
TTL uint32 `protobuf:"varint,1,opt,name=TTL,proto3" json:"TTL,omitempty"`
// Epoch for user can be empty, because node sets epoch to the actual value
Epoch uint64 `protobuf:"varint,2,opt,name=Epoch,proto3" json:"Epoch,omitempty"`
// Version defines protocol version
// TODO: not used for now, should be implemented in future
Version uint32 `protobuf:"varint,3,opt,name=Version,proto3" json:"Version,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -74,6 +81,13 @@ func (m *RequestMetaHeader) GetEpoch() uint64 {
return 0
}
func (m *RequestMetaHeader) GetVersion() uint32 {
if m != nil {
return m.Version
}
return 0
}
func init() {
proto.RegisterType((*RequestMetaHeader)(nil), "service.RequestMetaHeader")
}
@ -81,19 +95,20 @@ func init() {
func init() { proto.RegisterFile("service/meta.proto", fileDescriptor_a638867e7b43457c) }
var fileDescriptor_a638867e7b43457c = []byte{
// 185 bytes of a gzipped FileDescriptorProto
// 202 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x2a, 0x4e, 0x2d, 0x2a,
0xcb, 0x4c, 0x4e, 0xd5, 0xcf, 0x4d, 0x2d, 0x49, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62,
0x87, 0x8a, 0x49, 0xe9, 0xa6, 0x67, 0x96, 0x64, 0x94, 0x26, 0xe9, 0x25, 0xe7, 0xe7, 0xea, 0xa7,
0xe7, 0xa7, 0xe7, 0xeb, 0x83, 0xe5, 0x93, 0x4a, 0xd3, 0xc0, 0x3c, 0x30, 0x07, 0xcc, 0x82, 0xe8,
0x53, 0xb2, 0xe6, 0x12, 0x0c, 0x4a, 0x2d, 0x2c, 0x4d, 0x2d, 0x2e, 0xf1, 0x4d, 0x2d, 0x49, 0xf4,
0x53, 0x0a, 0xe5, 0x12, 0x0c, 0x4a, 0x2d, 0x2c, 0x4d, 0x2d, 0x2e, 0xf1, 0x4d, 0x2d, 0x49, 0xf4,
0x48, 0x4d, 0x4c, 0x49, 0x2d, 0x12, 0x12, 0xe0, 0x62, 0x0e, 0x09, 0xf1, 0x91, 0x60, 0x54, 0x60,
0xd4, 0xe0, 0x0d, 0x02, 0x31, 0x85, 0x44, 0xb8, 0x58, 0x5d, 0x0b, 0xf2, 0x93, 0x33, 0x24, 0x98,
0x14, 0x18, 0x35, 0x58, 0x82, 0x20, 0x1c, 0x27, 0xbb, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c, 0x92,
0x63, 0xbc, 0xf1, 0x48, 0x8e, 0xf1, 0xc1, 0x23, 0x39, 0xc6, 0x19, 0x8f, 0xe5, 0x18, 0xa2, 0x34,
0x90, 0x5c, 0x90, 0x57, 0x5c, 0x90, 0x9c, 0xac, 0x9b, 0x92, 0x5a, 0xa6, 0x9f, 0x97, 0x9a, 0x9f,
0x56, 0xac, 0x0b, 0xb1, 0x1f, 0xea, 0xd6, 0x24, 0x36, 0x30, 0xd7, 0x18, 0x10, 0x00, 0x00, 0xff,
0xff, 0x73, 0x6f, 0x01, 0x49, 0xd1, 0x00, 0x00, 0x00,
0x14, 0x18, 0x35, 0x58, 0x82, 0x20, 0x1c, 0x21, 0x09, 0x2e, 0xf6, 0xb0, 0xd4, 0xa2, 0xe2, 0xcc,
0xfc, 0x3c, 0x09, 0x66, 0xb0, 0x5a, 0x18, 0xd7, 0xc9, 0xee, 0xc4, 0x23, 0x39, 0xc6, 0x0b, 0x8f,
0xe4, 0x18, 0x6f, 0x3c, 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e, 0x71, 0xc6, 0x63, 0x39, 0x86, 0x28,
0x0d, 0x24, 0xb7, 0xe5, 0x15, 0x17, 0x24, 0x27, 0xeb, 0xa6, 0xa4, 0x96, 0xe9, 0xe7, 0xa5, 0xe6,
0xa7, 0x15, 0xeb, 0x42, 0x5c, 0x06, 0xf5, 0x45, 0x12, 0x1b, 0x98, 0x6b, 0x0c, 0x08, 0x00, 0x00,
0xff, 0xff, 0x6b, 0x83, 0x1d, 0xcf, 0xeb, 0x00, 0x00, 0x00,
}
func (m *RequestMetaHeader) Marshal() (dAtA []byte, err error) {
@ -120,6 +135,11 @@ func (m *RequestMetaHeader) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
if m.Version != 0 {
i = encodeVarintMeta(dAtA, i, uint64(m.Version))
i--
dAtA[i] = 0x18
}
if m.Epoch != 0 {
i = encodeVarintMeta(dAtA, i, uint64(m.Epoch))
i--
@ -156,6 +176,9 @@ func (m *RequestMetaHeader) Size() (n int) {
if m.Epoch != 0 {
n += 1 + sovMeta(uint64(m.Epoch))
}
if m.Version != 0 {
n += 1 + sovMeta(uint64(m.Version))
}
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@ -235,6 +258,25 @@ func (m *RequestMetaHeader) Unmarshal(dAtA []byte) error {
break
}
}
case 3:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
}
m.Version = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowMeta
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.Version |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
}
default:
iNdEx = preIndex
skippy, err := skipMeta(dAtA[iNdEx:])

View file

@ -6,7 +6,14 @@ import "github.com/gogo/protobuf/gogoproto/gogo.proto";
option (gogoproto.stable_marshaler_all) = true;
// RequestMetaHeader contains information about request meta headers
// (should be embedded into message)
message RequestMetaHeader {
// TTL must be larger than zero, it decreased in every NeoFS Node
uint32 TTL = 1;
// Epoch for user can be empty, because node sets epoch to the actual value
uint64 Epoch = 2;
// Version defines protocol version
// TODO: not used for now, should be implemented in future
uint32 Version = 3;
}

View file

@ -23,7 +23,10 @@ var _ = math.Inf
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
// RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request
// (should be embedded into message).
type RequestVerificationHeader struct {
// Signatures is a set of signatures of every passed NeoFS Node
Signatures []*RequestVerificationHeader_Signature `protobuf:"bytes,1,rep,name=Signatures,proto3" json:"Signatures,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -67,7 +70,9 @@ func (m *RequestVerificationHeader) GetSignatures() []*RequestVerificationHeader
}
type RequestVerificationHeader_Sign struct {
// Sign is signature of the request or session key.
Sign []byte `protobuf:"bytes,1,opt,name=Sign,proto3" json:"Sign,omitempty"`
// Peer is compressed public key used for signature.
Peer []byte `protobuf:"bytes,2,opt,name=Peer,proto3" json:"Peer,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -118,7 +123,11 @@ func (m *RequestVerificationHeader_Sign) GetPeer() []byte {
}
type RequestVerificationHeader_Signature struct {
// Sign is a signature and public key of the request.
RequestVerificationHeader_Sign `protobuf:"bytes,1,opt,name=Sign,proto3,embedded=Sign" json:"Sign"`
// Origin used for requests, when trusted node changes it and re-sign with session key.
// If session key used for signature request, then Origin should contain
// public key of user and signed session key.
Origin *RequestVerificationHeader_Sign `protobuf:"bytes,2,opt,name=Origin,proto3" json:"Origin,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`

View file

@ -6,15 +6,25 @@ import "github.com/gogo/protobuf/gogoproto/gogo.proto";
option (gogoproto.stable_marshaler_all) = true;
// RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request
// (should be embedded into message).
message RequestVerificationHeader {
message Sign {
// Sign is signature of the request or session key.
bytes Sign = 1;
// Peer is compressed public key used for signature.
bytes Peer = 2;
}
message Signature {
// Sign is a signature and public key of the request.
Sign Sign = 1 [(gogoproto.embed) = true, (gogoproto.nullable) = false];
// Origin used for requests, when trusted node changes it and re-sign with session key.
// If session key used for signature request, then Origin should contain
// public key of user and signed session key.
Sign Origin = 2;
}
// Signatures is a set of signatures of every passed NeoFS Node
repeated Signature Signatures = 1;
}

View file

@ -35,7 +35,9 @@ type CreateRequest struct {
// *CreateRequest_Init
// *CreateRequest_Signed
Message isCreateRequest_Message `protobuf_oneof:"Message"`
// RequestMetaHeader contains information about request meta headers (should be embedded into message)
service.RequestMetaHeader `protobuf:"bytes,98,opt,name=Meta,proto3,embedded=Meta" json:"Meta"`
// RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message)
service.RequestVerificationHeader `protobuf:"bytes,99,opt,name=Verify,proto3,embedded=Verify" json:"Verify"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`

View file

@ -36,7 +36,9 @@ message CreateRequest {
// Signed Init message response (Unsigned) from server with user private key
session.Token Signed = 2;
}
// RequestMetaHeader contains information about request meta headers (should be embedded into message)
service.RequestMetaHeader Meta = 98 [(gogoproto.embed) = true, (gogoproto.nullable) = false];
// RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message)
service.RequestVerificationHeader Verify = 99 [(gogoproto.embed) = true, (gogoproto.nullable) = false];
}

View file

@ -31,7 +31,9 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
// NetmapRequest message to request current node netmap
type NetmapRequest struct {
// RequestMetaHeader contains information about request meta headers (should be embedded into message)
service.RequestMetaHeader `protobuf:"bytes,98,opt,name=Meta,proto3,embedded=Meta" json:"Meta"`
// RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message)
service.RequestVerificationHeader `protobuf:"bytes,99,opt,name=Verify,proto3,embedded=Verify" json:"Verify"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -69,7 +71,9 @@ var xxx_messageInfo_NetmapRequest proto.InternalMessageInfo
// MetricsRequest message to request node metrics
type MetricsRequest struct {
// RequestMetaHeader contains information about request meta headers (should be embedded into message)
service.RequestMetaHeader `protobuf:"bytes,98,opt,name=Meta,proto3,embedded=Meta" json:"Meta"`
// RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message)
service.RequestVerificationHeader `protobuf:"bytes,99,opt,name=Verify,proto3,embedded=Verify" json:"Verify"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -153,7 +157,9 @@ func (m *MetricsResponse) GetMetrics() [][]byte {
// HealthRequest message to check current state
type HealthRequest struct {
// RequestMetaHeader contains information about request meta headers (should be embedded into message)
service.RequestMetaHeader `protobuf:"bytes,98,opt,name=Meta,proto3,embedded=Meta" json:"Meta"`
// RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message)
service.RequestVerificationHeader `protobuf:"bytes,99,opt,name=Verify,proto3,embedded=Verify" json:"Verify"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`

View file

@ -22,13 +22,17 @@ service Status {
// NetmapRequest message to request current node netmap
message NetmapRequest {
// RequestMetaHeader contains information about request meta headers (should be embedded into message)
service.RequestMetaHeader Meta = 98 [(gogoproto.embed) = true, (gogoproto.nullable) = false];
// RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message)
service.RequestVerificationHeader Verify = 99 [(gogoproto.embed) = true, (gogoproto.nullable) = false];
}
// MetricsRequest message to request node metrics
message MetricsRequest {
// RequestMetaHeader contains information about request meta headers (should be embedded into message)
service.RequestMetaHeader Meta = 98 [(gogoproto.embed) = true, (gogoproto.nullable) = false];
// RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message)
service.RequestVerificationHeader Verify = 99 [(gogoproto.embed) = true, (gogoproto.nullable) = false];
}
@ -41,7 +45,9 @@ message MetricsResponse {
// HealthRequest message to check current state
message HealthRequest {
// RequestMetaHeader contains information about request meta headers (should be embedded into message)
service.RequestMetaHeader Meta = 98 [(gogoproto.embed) = true, (gogoproto.nullable) = false];
// RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message)
service.RequestVerificationHeader Verify = 99 [(gogoproto.embed) = true, (gogoproto.nullable) = false];
}