frostfs-api/proto-docs/refs.md
Stanislav Bogatyrev a6ecab41b8 Update auto-generated docs
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-10-16 14:40:24 +03:00

5.3 KiB

Protocol Documentation

Table of Contents

Top

refs/types.proto

Message Address

Object in NeoFS can be addressed by it's ContainerID and ObjectID. In string format there MUST be a '/' delimeter between them.

Field Type Label Description
container_id ContainerID Container identifier
object_id ObjectID Object identifier

Message Checksum

Checksum message.

Field Type Label Description
type ChecksumType Checksum algorithm type
sum bytes Checksum itself

Message ContainerID

NeoFS container identifier. Container structures are immutable and content-addressed. ContainerID is a 32 byte long SHA256 hash of stable-marshalled container message.

Field Type Label Description
value bytes Container identifier in a binary format.

Message ObjectID

NeoFS Object unique identifier. Objects are immutable and content-addressed. It means ObjectID will change if header or payload changes. ObjectID is calculated as a hash of header field, which contains hash of object's payload.

Field Type Label Description
value bytes Object identifier in a binary format

Message OwnerID

OwnerID is a derivative of a user's main public key. The transformation algorithm is the same as for Neo3 wallet addresses. Neo3 wallet address can be directly used as OwnerID.

Field Type Label Description
value bytes Identifier of the container owner in a binary format

Message Signature

Signature of something in NeoFS.

Field Type Label Description
key bytes Public key used for signing
sign bytes Signature

Message Version

API version used by a node.

Field Type Label Description
major uint32 Major API version
minor uint32 Minor API version

ChecksumType

Checksum algorithm type.

Name Number Description
CHECKSUM_TYPE_UNSPECIFIED 0 Unknown. Not used
TZ 1 Tillich-Zemor homomorphic hash function
SHA256 2 SHA-256

Scalar Value Types

.proto Type Notes C++ Type Java Type Python Type
double double double float
float float float float
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
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
uint32 Uses variable-length encoding. uint32 int int/long
uint64 Uses variable-length encoding. uint64 long int/long
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int int
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 long int/long
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int int
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long
sfixed32 Always four bytes. int32 int int
sfixed64 Always eight bytes. int64 long int/long
bool bool boolean boolean
string A string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode
bytes May contain any arbitrary sequence of bytes. string ByteString str