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 |