2020-01-30 11:41:24 +00:00
# Protocol Documentation
< a name = "top" > < / a >
## Table of Contents
2020-08-18 11:13:16 +00:00
- [service/types.proto ](#service/types.proto )
2020-01-30 11:41:24 +00:00
- Messages
2020-08-13 16:18:53 +00:00
- [RequestMetaHeader ](#neo.fs.v2.service.RequestMetaHeader )
2020-08-18 11:13:16 +00:00
- [RequestVerificationHeader ](#neo.fs.v2.service.RequestVerificationHeader )
2020-08-13 16:18:53 +00:00
- [ResponseMetaHeader ](#neo.fs.v2.service.ResponseMetaHeader )
2020-08-18 11:13:16 +00:00
- [ResponseVerificationHeader ](#neo.fs.v2.service.ResponseVerificationHeader )
2020-08-13 16:18:53 +00:00
- [XHeader ](#neo.fs.v2.service.XHeader )
2020-01-30 11:41:24 +00:00
- [Scalar Value Types ](#scalar-value-types )
2020-08-18 11:13:16 +00:00
< a name = "service/types.proto" > < / a >
2020-01-30 11:41:24 +00:00
< p align = "right" > < a href = "#top" > Top< / a > < / p >
2020-08-18 11:13:16 +00:00
## service/types.proto
2020-01-30 11:41:24 +00:00
<!-- end services -->
2020-08-13 16:18:53 +00:00
< a name = "neo.fs.v2.service.RequestMetaHeader" > < / a >
2020-08-11 13:04:54 +00:00
2020-08-11 15:49:56 +00:00
### Message RequestMetaHeader
Information about the request
2020-08-11 13:04:54 +00:00
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
2020-08-18 13:51:28 +00:00
| version | [neo.fs.v2.refs.Version ](#neo.fs.v2.refs.Version ) | | Client API version. |
2020-08-11 15:49:56 +00:00
| epoch | [uint64 ](#uint64 ) | | Client local epoch number. Set to 0 if unknown. |
| ttl | [uint32 ](#uint32 ) | | Maximum number of nodes in the request route. |
2020-08-13 16:18:53 +00:00
| x_headers | [XHeader ](#neo.fs.v2.service.XHeader ) | repeated | Request X-Headers. |
2020-08-18 13:51:28 +00:00
| session_token | [neo.fs.v2.session.SessionToken ](#neo.fs.v2.session.SessionToken ) | | Token is a token of the session within which the request is sent |
| bearer_token | [neo.fs.v2.acl.BearerToken ](#neo.fs.v2.acl.BearerToken ) | | Bearer is a Bearer token of the request |
2020-08-13 16:18:53 +00:00
| origin | [RequestMetaHeader ](#neo.fs.v2.service.RequestMetaHeader ) | | RequestMetaHeader of the origin request. |
2020-08-11 13:04:54 +00:00
2020-01-30 11:41:24 +00:00
2020-08-18 11:13:16 +00:00
< a name = "neo.fs.v2.service.RequestVerificationHeader" > < / a >
### Message RequestVerificationHeader
Verification info for request signed by all intermediate nodes
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
2020-08-18 13:51:28 +00:00
| body_signature | [neo.fs.v2.refs.Signature ](#neo.fs.v2.refs.Signature ) | | Request Body signature. Should be generated once by request initiator. |
| meta_signature | [neo.fs.v2.refs.Signature ](#neo.fs.v2.refs.Signature ) | | Request Meta signature is added and signed by any intermediate node |
| origin_signature | [neo.fs.v2.refs.Signature ](#neo.fs.v2.refs.Signature ) | | Sign previous hops |
2020-08-18 11:13:16 +00:00
| origin | [RequestVerificationHeader ](#neo.fs.v2.service.RequestVerificationHeader ) | | Chain of previous hops signatures |
2020-08-13 16:18:53 +00:00
< a name = "neo.fs.v2.service.ResponseMetaHeader" > < / a >
2020-01-30 11:41:24 +00:00
2020-08-11 15:49:56 +00:00
### Message ResponseMetaHeader
Information about the response
2020-01-30 11:41:24 +00:00
2020-08-11 15:49:56 +00:00
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
2020-08-18 13:51:28 +00:00
| version | [neo.fs.v2.refs.Version ](#neo.fs.v2.refs.Version ) | | Server API version. |
2020-08-11 15:49:56 +00:00
| epoch | [uint64 ](#uint64 ) | | Server local epoch number. |
| ttl | [uint32 ](#uint32 ) | | Maximum number of nodes in the response route. |
2020-08-13 16:18:53 +00:00
| x_headers | [XHeader ](#neo.fs.v2.service.XHeader ) | repeated | Response X-Headers. |
| origin | [ResponseMetaHeader ](#neo.fs.v2.service.ResponseMetaHeader ) | | Carries response meta header of the origin response. |
2020-01-30 11:41:24 +00:00
2020-08-18 11:13:16 +00:00
< a name = "neo.fs.v2.service.ResponseVerificationHeader" > < / a >
### Message ResponseVerificationHeader
Verification info for response signed by all intermediate nodes
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
2020-08-18 13:51:28 +00:00
| body_signature | [neo.fs.v2.refs.Signature ](#neo.fs.v2.refs.Signature ) | | Response Body signature. Should be generated once by answering node. |
| meta_signature | [neo.fs.v2.refs.Signature ](#neo.fs.v2.refs.Signature ) | | Response Meta signature is added and signed by any intermediate node |
| origin_signature | [neo.fs.v2.refs.Signature ](#neo.fs.v2.refs.Signature ) | | Sign previous hops |
2020-08-18 11:13:16 +00:00
| origin | [ResponseVerificationHeader ](#neo.fs.v2.service.ResponseVerificationHeader ) | | Chain of previous hops signatures |
2020-08-13 16:18:53 +00:00
< a name = "neo.fs.v2.service.XHeader" > < / a >
2020-04-24 16:18:28 +00:00
2020-08-11 15:49:56 +00:00
### Message XHeader
2020-08-13 16:18:53 +00:00
Extended headers for Request/Response
2020-04-24 16:18:28 +00:00
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
2020-08-11 15:49:56 +00:00
| key | [string ](#string ) | | Key of the X-Header. |
| value | [string ](#string ) | | Value of the X-Header. |
2020-04-24 16:18:28 +00:00
2020-08-11 15:49:56 +00:00
<!-- end messages -->
2020-05-07 15:42:29 +00:00
2020-08-11 15:49:56 +00:00
<!-- end enums -->
2020-08-11 13:04:54 +00:00
2020-01-30 11:41:24 +00:00
## 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 |