frostfs-api-go/docs/bootstrap.md
2019-11-21 16:16:34 +03:00

4.7 KiB

Protocol Documentation

Table of Contents

Top

bootstrap/service.proto

Service "bootstrap.Bootstrap"

Bootstrap service allows neofs-node to connect to the network. Node should perform at least one bootstrap request in the epoch to stay in the network for the next epoch.

rpc Process(Request) returns (SpreadMap);

Method Process

Process is method that allows to register node in the network and receive actual netmap

Name Input Output
Process Request SpreadMap

Message Request

Field Type Label Description
type int32 Type is NodeType, can be InnerRingNode (type=1) or StorageNode (type=2)
info NodeInfo Info contains information about node
Meta service.RequestMetaHeader RequestMetaHeader contains information about request meta headers (should be embedded into message)
Verify service.RequestVerificationHeader RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message)

Top

bootstrap/types.proto

Message NodeInfo

Field Type Label Description
Address string Address is a node multi-address
PubKey bytes PubKey is a compressed public key representation in bytes
Options string repeated Options is set of node optional information, such as storage capacity, node location, price and etc
Status uint64 Status is bitmap status of the node

Message SpreadMap

Field Type Label Description
Epoch uint64 Epoch is current epoch for netmap
NetMap NodeInfo repeated NetMap is a set of NodeInfos

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