netmap

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 15, 2025 License: Apache-2.0 Imports: 9 Imported by: 2

Documentation

Index

Constants

View Source
const (
	NetmapService_LocalNodeInfo_FullMethodName  = "/frost.fs.netmap.NetmapService/LocalNodeInfo"
	NetmapService_NetworkInfo_FullMethodName    = "/frost.fs.netmap.NetmapService/NetworkInfo"
	NetmapService_NetmapSnapshot_FullMethodName = "/frost.fs.netmap.NetmapService/NetmapSnapshot"
)

Variables

View Source
var (
	Operation_name = map[int32]string{
		0:  "OPERATION_UNSPECIFIED",
		1:  "EQ",
		2:  "NE",
		3:  "GT",
		4:  "GE",
		5:  "LT",
		6:  "LE",
		7:  "OR",
		8:  "AND",
		9:  "NOT",
		10: "LIKE",
	}
	Operation_value = map[string]int32{
		"OPERATION_UNSPECIFIED": 0,
		"EQ":                    1,
		"NE":                    2,
		"GT":                    3,
		"GE":                    4,
		"LT":                    5,
		"LE":                    6,
		"OR":                    7,
		"AND":                   8,
		"NOT":                   9,
		"LIKE":                  10,
	}
)

Enum value maps for Operation.

View Source
var (
	Clause_name = map[int32]string{
		0: "CLAUSE_UNSPECIFIED",
		1: "SAME",
		2: "DISTINCT",
	}
	Clause_value = map[string]int32{
		"CLAUSE_UNSPECIFIED": 0,
		"SAME":               1,
		"DISTINCT":           2,
	}
)

Enum value maps for Clause.

View Source
var (
	NodeInfo_State_name = map[int32]string{
		0: "UNSPECIFIED",
		1: "ONLINE",
		2: "OFFLINE",
		3: "MAINTENANCE",
	}
	NodeInfo_State_value = map[string]int32{
		"UNSPECIFIED": 0,
		"ONLINE":      1,
		"OFFLINE":     2,
		"MAINTENANCE": 3,
	}
)

Enum value maps for NodeInfo_State.

View Source
var File_api_netmap_grpc_service_proto protoreflect.FileDescriptor
View Source
var File_api_netmap_grpc_types_proto protoreflect.FileDescriptor
View Source
var NetmapService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "frost.fs.netmap.NetmapService",
	HandlerType: (*NetmapServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "LocalNodeInfo",
			Handler:    _NetmapService_LocalNodeInfo_Handler,
		},
		{
			MethodName: "NetworkInfo",
			Handler:    _NetmapService_NetworkInfo_Handler,
		},
		{
			MethodName: "NetmapSnapshot",
			Handler:    _NetmapService_NetmapSnapshot_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "api/netmap/grpc/service.proto",
}

NetmapService_ServiceDesc is the grpc.ServiceDesc for NetmapService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

Functions

func RegisterNetmapServiceServer

func RegisterNetmapServiceServer(s grpc.ServiceRegistrar, srv NetmapServiceServer)

Types

type Clause

type Clause int32

Selector modifier shows how the node set will be formed. By default selector just groups nodes into a bucket by attribute, selecting nodes only by their hash distance.

const (
	// No modifier defined. Nodes will be selected from the bucket randomly
	Clause_CLAUSE_UNSPECIFIED Clause = 0
	// SAME will select only nodes having the same value of bucket attribute
	Clause_SAME Clause = 1
	// DISTINCT will select nodes having different values of bucket attribute
	Clause_DISTINCT Clause = 2
)

func (Clause) Descriptor

func (Clause) Descriptor() protoreflect.EnumDescriptor

func (Clause) Enum

func (x Clause) Enum() *Clause

func (Clause) Number

func (x Clause) Number() protoreflect.EnumNumber

func (Clause) String

func (x Clause) String() string

func (Clause) Type

func (Clause) Type() protoreflect.EnumType

type Filter

type Filter struct {

	// Name of the filter or a reference to a named filter. '*' means
	// application to the whole unfiltered NetworkMap. At top level it's used as a
	// filter name. At lower levels it's considered to be a reference to another
	// named filter
	Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	// Key to filter
	Key *string `protobuf:"bytes,2,opt,name=key" json:"key,omitempty"`
	// Filtering operation
	Op *Operation `protobuf:"varint,3,opt,name=op,enum=frost.fs.netmap.Operation" json:"op,omitempty"`
	// Value to match
	Value *string `protobuf:"bytes,4,opt,name=value" json:"value,omitempty"`
	// List of inner filters. Top level operation will be applied to the whole
	// list.
	Filters []*Filter `protobuf:"bytes,5,rep,name=filters" json:"filters,omitempty"`
	// contains filtered or unexported fields
}

This filter will return the subset of nodes from `NetworkMap` or another filter's results that will satisfy filter's conditions.

func (*Filter) ClearKey

func (x *Filter) ClearKey()

func (*Filter) ClearName

func (x *Filter) ClearName()

func (*Filter) ClearOp

func (x *Filter) ClearOp()

func (*Filter) ClearValue

func (x *Filter) ClearValue()

func (*Filter) GetFilters

func (x *Filter) GetFilters() []*Filter

func (*Filter) GetKey

func (x *Filter) GetKey() string

func (*Filter) GetName

func (x *Filter) GetName() string

func (*Filter) GetOp

func (x *Filter) GetOp() Operation

func (*Filter) GetValue

func (x *Filter) GetValue() string

func (*Filter) HasKey

func (x *Filter) HasKey() bool

func (*Filter) HasName

func (x *Filter) HasName() bool

func (*Filter) HasOp

func (x *Filter) HasOp() bool

func (*Filter) HasValue

func (x *Filter) HasValue() bool

func (*Filter) ProtoMessage

func (*Filter) ProtoMessage()

func (*Filter) ProtoReflect

func (x *Filter) ProtoReflect() protoreflect.Message

func (*Filter) Reset

func (x *Filter) Reset()

func (*Filter) SetFilters

func (x *Filter) SetFilters(v []*Filter)

func (*Filter) SetKey

func (x *Filter) SetKey(v string)

func (*Filter) SetName

func (x *Filter) SetName(v string)

func (*Filter) SetOp

func (x *Filter) SetOp(v Operation)

func (*Filter) SetValue

func (x *Filter) SetValue(v string)

func (*Filter) String

func (x *Filter) String() string

type Filter_builder

type Filter_builder struct {

	// Name of the filter or a reference to a named filter. '*' means
	// application to the whole unfiltered NetworkMap. At top level it's used as a
	// filter name. At lower levels it's considered to be a reference to another
	// named filter
	Name *string
	// Key to filter
	Key *string
	// Filtering operation
	Op *Operation
	// Value to match
	Value *string
	// List of inner filters. Top level operation will be applied to the whole
	// list.
	Filters []*Filter
	// contains filtered or unexported fields
}

func (Filter_builder) Build

func (b0 Filter_builder) Build() *Filter

type LocalNodeInfoRequest

type LocalNodeInfoRequest struct {

	// Body of the LocalNodeInfo request message
	Body *LocalNodeInfoRequest_Body `protobuf:"bytes,1,opt,name=body" json:"body,omitempty"`
	// Carries request meta information. Header data is used only to regulate
	// message transport and does not affect request execution.
	MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader" json:"meta_header,omitempty"`
	// Carries request verification information. This header is used to
	// authenticate the nodes of the message route and check the correctness of
	// transmission.
	VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader" json:"verify_header,omitempty"`
	// contains filtered or unexported fields
}

Get NodeInfo structure directly from a particular node

func (*LocalNodeInfoRequest) ClearBody

func (x *LocalNodeInfoRequest) ClearBody()

func (*LocalNodeInfoRequest) ClearMetaHeader

func (x *LocalNodeInfoRequest) ClearMetaHeader()

func (*LocalNodeInfoRequest) ClearVerifyHeader

func (x *LocalNodeInfoRequest) ClearVerifyHeader()

func (*LocalNodeInfoRequest) GetBody

func (*LocalNodeInfoRequest) GetMetaHeader

func (x *LocalNodeInfoRequest) GetMetaHeader() *grpc.RequestMetaHeader

func (*LocalNodeInfoRequest) GetVerifyHeader

func (x *LocalNodeInfoRequest) GetVerifyHeader() *grpc.RequestVerificationHeader

func (*LocalNodeInfoRequest) HasBody

func (x *LocalNodeInfoRequest) HasBody() bool

func (*LocalNodeInfoRequest) HasMetaHeader

func (x *LocalNodeInfoRequest) HasMetaHeader() bool

func (*LocalNodeInfoRequest) HasVerifyHeader

func (x *LocalNodeInfoRequest) HasVerifyHeader() bool

func (*LocalNodeInfoRequest) ProtoMessage

func (*LocalNodeInfoRequest) ProtoMessage()

func (*LocalNodeInfoRequest) ProtoReflect

func (x *LocalNodeInfoRequest) ProtoReflect() protoreflect.Message

func (*LocalNodeInfoRequest) Reset

func (x *LocalNodeInfoRequest) Reset()

func (*LocalNodeInfoRequest) SetBody

func (*LocalNodeInfoRequest) SetMetaHeader

func (x *LocalNodeInfoRequest) SetMetaHeader(v *grpc.RequestMetaHeader)

func (*LocalNodeInfoRequest) SetVerifyHeader

func (x *LocalNodeInfoRequest) SetVerifyHeader(v *grpc.RequestVerificationHeader)

func (*LocalNodeInfoRequest) String

func (x *LocalNodeInfoRequest) String() string

type LocalNodeInfoRequest_Body

type LocalNodeInfoRequest_Body struct {
	// contains filtered or unexported fields
}

LocalNodeInfo request body is empty.

func (*LocalNodeInfoRequest_Body) ProtoMessage

func (*LocalNodeInfoRequest_Body) ProtoMessage()

func (*LocalNodeInfoRequest_Body) ProtoReflect

func (*LocalNodeInfoRequest_Body) Reset

func (x *LocalNodeInfoRequest_Body) Reset()

func (*LocalNodeInfoRequest_Body) String

func (x *LocalNodeInfoRequest_Body) String() string

type LocalNodeInfoRequest_Body_builder

type LocalNodeInfoRequest_Body_builder struct {
	// contains filtered or unexported fields
}

func (LocalNodeInfoRequest_Body_builder) Build

type LocalNodeInfoRequest_builder

type LocalNodeInfoRequest_builder struct {

	// Body of the LocalNodeInfo request message
	Body *LocalNodeInfoRequest_Body
	// Carries request meta information. Header data is used only to regulate
	// message transport and does not affect request execution.
	MetaHeader *grpc.RequestMetaHeader
	// Carries request verification information. This header is used to
	// authenticate the nodes of the message route and check the correctness of
	// transmission.
	VerifyHeader *grpc.RequestVerificationHeader
	// contains filtered or unexported fields
}

func (LocalNodeInfoRequest_builder) Build

type LocalNodeInfoResponse

type LocalNodeInfoResponse struct {

	// Body of the balance response message.
	Body *LocalNodeInfoResponse_Body `protobuf:"bytes,1,opt,name=body" json:"body,omitempty"`
	// Carries response meta information. Header data is used only to regulate
	// message transport and does not affect response execution.
	MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader" json:"meta_header,omitempty"`
	// Carries response verification information. This header is used to
	// authenticate the nodes of the message route and check the correctness of
	// transmission.
	VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader" json:"verify_header,omitempty"`
	// contains filtered or unexported fields
}

Local Node Info, including API Version in use

func (*LocalNodeInfoResponse) ClearBody

func (x *LocalNodeInfoResponse) ClearBody()

func (*LocalNodeInfoResponse) ClearMetaHeader

func (x *LocalNodeInfoResponse) ClearMetaHeader()

func (*LocalNodeInfoResponse) ClearVerifyHeader

func (x *LocalNodeInfoResponse) ClearVerifyHeader()

func (*LocalNodeInfoResponse) GetBody

func (*LocalNodeInfoResponse) GetMetaHeader

func (x *LocalNodeInfoResponse) GetMetaHeader() *grpc.ResponseMetaHeader

func (*LocalNodeInfoResponse) GetVerifyHeader

func (*LocalNodeInfoResponse) HasBody

func (x *LocalNodeInfoResponse) HasBody() bool

func (*LocalNodeInfoResponse) HasMetaHeader

func (x *LocalNodeInfoResponse) HasMetaHeader() bool

func (*LocalNodeInfoResponse) HasVerifyHeader

func (x *LocalNodeInfoResponse) HasVerifyHeader() bool

func (*LocalNodeInfoResponse) ProtoMessage

func (*LocalNodeInfoResponse) ProtoMessage()

func (*LocalNodeInfoResponse) ProtoReflect

func (x *LocalNodeInfoResponse) ProtoReflect() protoreflect.Message

func (*LocalNodeInfoResponse) Reset

func (x *LocalNodeInfoResponse) Reset()

func (*LocalNodeInfoResponse) SetBody

func (*LocalNodeInfoResponse) SetMetaHeader

func (x *LocalNodeInfoResponse) SetMetaHeader(v *grpc.ResponseMetaHeader)

func (*LocalNodeInfoResponse) SetVerifyHeader

func (x *LocalNodeInfoResponse) SetVerifyHeader(v *grpc.ResponseVerificationHeader)

func (*LocalNodeInfoResponse) String

func (x *LocalNodeInfoResponse) String() string

type LocalNodeInfoResponse_Body

type LocalNodeInfoResponse_Body struct {

	// Latest FrostFS API version in use
	Version *grpc1.Version `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"`
	// NodeInfo structure with recent information from node itself
	NodeInfo *NodeInfo `protobuf:"bytes,2,opt,name=node_info,json=nodeInfo" json:"node_info,omitempty"`
	// contains filtered or unexported fields
}

Local Node Info, including API Version in use.

func (*LocalNodeInfoResponse_Body) ClearNodeInfo

func (x *LocalNodeInfoResponse_Body) ClearNodeInfo()

func (*LocalNodeInfoResponse_Body) ClearVersion

func (x *LocalNodeInfoResponse_Body) ClearVersion()

func (*LocalNodeInfoResponse_Body) GetNodeInfo

func (x *LocalNodeInfoResponse_Body) GetNodeInfo() *NodeInfo

func (*LocalNodeInfoResponse_Body) GetVersion

func (x *LocalNodeInfoResponse_Body) GetVersion() *grpc1.Version

func (*LocalNodeInfoResponse_Body) HasNodeInfo

func (x *LocalNodeInfoResponse_Body) HasNodeInfo() bool

func (*LocalNodeInfoResponse_Body) HasVersion

func (x *LocalNodeInfoResponse_Body) HasVersion() bool

func (*LocalNodeInfoResponse_Body) ProtoMessage

func (*LocalNodeInfoResponse_Body) ProtoMessage()

func (*LocalNodeInfoResponse_Body) ProtoReflect

func (*LocalNodeInfoResponse_Body) Reset

func (x *LocalNodeInfoResponse_Body) Reset()

func (*LocalNodeInfoResponse_Body) SetNodeInfo

func (x *LocalNodeInfoResponse_Body) SetNodeInfo(v *NodeInfo)

func (*LocalNodeInfoResponse_Body) SetVersion

func (x *LocalNodeInfoResponse_Body) SetVersion(v *grpc1.Version)

func (*LocalNodeInfoResponse_Body) String

func (x *LocalNodeInfoResponse_Body) String() string

type LocalNodeInfoResponse_Body_builder

type LocalNodeInfoResponse_Body_builder struct {

	// Latest FrostFS API version in use
	Version *grpc1.Version
	// NodeInfo structure with recent information from node itself
	NodeInfo *NodeInfo
	// contains filtered or unexported fields
}

func (LocalNodeInfoResponse_Body_builder) Build

type LocalNodeInfoResponse_builder

type LocalNodeInfoResponse_builder struct {

	// Body of the balance response message.
	Body *LocalNodeInfoResponse_Body
	// Carries response meta information. Header data is used only to regulate
	// message transport and does not affect response execution.
	MetaHeader *grpc.ResponseMetaHeader
	// Carries response verification information. This header is used to
	// authenticate the nodes of the message route and check the correctness of
	// transmission.
	VerifyHeader *grpc.ResponseVerificationHeader
	// contains filtered or unexported fields
}

func (LocalNodeInfoResponse_builder) Build

type Netmap

type Netmap struct {

	// Network map revision number.
	Epoch *uint64 `protobuf:"varint,1,opt,name=epoch" json:"epoch,omitempty"`
	// Nodes presented in network.
	Nodes []*NodeInfo `protobuf:"bytes,2,rep,name=nodes" json:"nodes,omitempty"`
	// contains filtered or unexported fields
}

Network map structure

func (*Netmap) ClearEpoch

func (x *Netmap) ClearEpoch()

func (*Netmap) GetEpoch

func (x *Netmap) GetEpoch() uint64

func (*Netmap) GetNodes

func (x *Netmap) GetNodes() []*NodeInfo

func (*Netmap) HasEpoch

func (x *Netmap) HasEpoch() bool

func (*Netmap) ProtoMessage

func (*Netmap) ProtoMessage()

func (*Netmap) ProtoReflect

func (x *Netmap) ProtoReflect() protoreflect.Message

func (*Netmap) Reset

func (x *Netmap) Reset()

func (*Netmap) SetEpoch

func (x *Netmap) SetEpoch(v uint64)

func (*Netmap) SetNodes

func (x *Netmap) SetNodes(v []*NodeInfo)

func (*Netmap) String

func (x *Netmap) String() string

type NetmapServiceClient

type NetmapServiceClient interface {
	// Get NodeInfo structure from the particular node directly.
	// Node information can be taken from `Netmap` smart contract. In some cases,
	// though, one may want to get recent information directly or to talk to the
	// node not yet present in the `Network Map` to find out what API version can
	// be used for further communication. This can be also used to check if a node
	// is up and running.
	//
	// Statuses:
	// - **OK** (0, SECTION_SUCCESS):
	// information about the server has been successfully read;
	// - Common failures (SECTION_FAILURE_COMMON).
	LocalNodeInfo(ctx context.Context, in *LocalNodeInfoRequest, opts ...grpc.CallOption) (*LocalNodeInfoResponse, error)
	// Read recent information about the FrostFS network.
	//
	// Statuses:
	// - **OK** (0, SECTION_SUCCESS):
	// information about the current network state has been successfully read;
	// - Common failures (SECTION_FAILURE_COMMON).
	NetworkInfo(ctx context.Context, in *NetworkInfoRequest, opts ...grpc.CallOption) (*NetworkInfoResponse, error)
	// Returns network map snapshot of the current FrostFS epoch.
	//
	// Statuses:
	// - **OK** (0, SECTION_SUCCESS):
	// information about the current network map has been successfully read;
	// - Common failures (SECTION_FAILURE_COMMON).
	NetmapSnapshot(ctx context.Context, in *NetmapSnapshotRequest, opts ...grpc.CallOption) (*NetmapSnapshotResponse, error)
}

NetmapServiceClient is the client API for NetmapService service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

`NetmapService` provides methods to work with `Network Map` and the information required to build it. The resulting `Network Map` is stored in sidechain `Netmap` smart contract, while related information can be obtained from other FrostFS nodes.

type NetmapServiceServer

type NetmapServiceServer interface {
	// Get NodeInfo structure from the particular node directly.
	// Node information can be taken from `Netmap` smart contract. In some cases,
	// though, one may want to get recent information directly or to talk to the
	// node not yet present in the `Network Map` to find out what API version can
	// be used for further communication. This can be also used to check if a node
	// is up and running.
	//
	// Statuses:
	// - **OK** (0, SECTION_SUCCESS):
	// information about the server has been successfully read;
	// - Common failures (SECTION_FAILURE_COMMON).
	LocalNodeInfo(context.Context, *LocalNodeInfoRequest) (*LocalNodeInfoResponse, error)
	// Read recent information about the FrostFS network.
	//
	// Statuses:
	// - **OK** (0, SECTION_SUCCESS):
	// information about the current network state has been successfully read;
	// - Common failures (SECTION_FAILURE_COMMON).
	NetworkInfo(context.Context, *NetworkInfoRequest) (*NetworkInfoResponse, error)
	// Returns network map snapshot of the current FrostFS epoch.
	//
	// Statuses:
	// - **OK** (0, SECTION_SUCCESS):
	// information about the current network map has been successfully read;
	// - Common failures (SECTION_FAILURE_COMMON).
	NetmapSnapshot(context.Context, *NetmapSnapshotRequest) (*NetmapSnapshotResponse, error)
}

NetmapServiceServer is the server API for NetmapService service. All implementations should embed UnimplementedNetmapServiceServer for forward compatibility.

`NetmapService` provides methods to work with `Network Map` and the information required to build it. The resulting `Network Map` is stored in sidechain `Netmap` smart contract, while related information can be obtained from other FrostFS nodes.

type NetmapSnapshotRequest

type NetmapSnapshotRequest struct {

	// Body of get netmap snapshot request message.
	Body *NetmapSnapshotRequest_Body `protobuf:"bytes,1,opt,name=body" json:"body,omitempty"`
	// Carries request meta information. Header data is used only to regulate
	// message transport and does not affect request execution.
	MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader" json:"meta_header,omitempty"`
	// Carries request verification information. This header is used to
	// authenticate the nodes of the message route and check the correctness of
	// transmission.
	VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader" json:"verify_header,omitempty"`
	// contains filtered or unexported fields
}

Get netmap snapshot request

func (*NetmapSnapshotRequest) ClearBody

func (x *NetmapSnapshotRequest) ClearBody()

func (*NetmapSnapshotRequest) ClearMetaHeader

func (x *NetmapSnapshotRequest) ClearMetaHeader()

func (*NetmapSnapshotRequest) ClearVerifyHeader

func (x *NetmapSnapshotRequest) ClearVerifyHeader()

func (*NetmapSnapshotRequest) GetBody

func (*NetmapSnapshotRequest) GetMetaHeader

func (x *NetmapSnapshotRequest) GetMetaHeader() *grpc.RequestMetaHeader

func (*NetmapSnapshotRequest) GetVerifyHeader

func (*NetmapSnapshotRequest) HasBody

func (x *NetmapSnapshotRequest) HasBody() bool

func (*NetmapSnapshotRequest) HasMetaHeader

func (x *NetmapSnapshotRequest) HasMetaHeader() bool

func (*NetmapSnapshotRequest) HasVerifyHeader

func (x *NetmapSnapshotRequest) HasVerifyHeader() bool

func (*NetmapSnapshotRequest) ProtoMessage

func (*NetmapSnapshotRequest) ProtoMessage()

func (*NetmapSnapshotRequest) ProtoReflect

func (x *NetmapSnapshotRequest) ProtoReflect() protoreflect.Message

func (*NetmapSnapshotRequest) Reset

func (x *NetmapSnapshotRequest) Reset()

func (*NetmapSnapshotRequest) SetBody

func (*NetmapSnapshotRequest) SetMetaHeader

func (x *NetmapSnapshotRequest) SetMetaHeader(v *grpc.RequestMetaHeader)

func (*NetmapSnapshotRequest) SetVerifyHeader

func (x *NetmapSnapshotRequest) SetVerifyHeader(v *grpc.RequestVerificationHeader)

func (*NetmapSnapshotRequest) String

func (x *NetmapSnapshotRequest) String() string

type NetmapSnapshotRequest_Body

type NetmapSnapshotRequest_Body struct {
	// contains filtered or unexported fields
}

Get netmap snapshot request body.

func (*NetmapSnapshotRequest_Body) ProtoMessage

func (*NetmapSnapshotRequest_Body) ProtoMessage()

func (*NetmapSnapshotRequest_Body) ProtoReflect

func (*NetmapSnapshotRequest_Body) Reset

func (x *NetmapSnapshotRequest_Body) Reset()

func (*NetmapSnapshotRequest_Body) String

func (x *NetmapSnapshotRequest_Body) String() string

type NetmapSnapshotRequest_Body_builder

type NetmapSnapshotRequest_Body_builder struct {
	// contains filtered or unexported fields
}

func (NetmapSnapshotRequest_Body_builder) Build

type NetmapSnapshotRequest_builder

type NetmapSnapshotRequest_builder struct {

	// Body of get netmap snapshot request message.
	Body *NetmapSnapshotRequest_Body
	// Carries request meta information. Header data is used only to regulate
	// message transport and does not affect request execution.
	MetaHeader *grpc.RequestMetaHeader
	// Carries request verification information. This header is used to
	// authenticate the nodes of the message route and check the correctness of
	// transmission.
	VerifyHeader *grpc.RequestVerificationHeader
	// contains filtered or unexported fields
}

func (NetmapSnapshotRequest_builder) Build

type NetmapSnapshotResponse

type NetmapSnapshotResponse struct {

	// Body of get netmap snapshot response message.
	Body *NetmapSnapshotResponse_Body `protobuf:"bytes,1,opt,name=body" json:"body,omitempty"`
	// Carries response meta information. Header data is used only to regulate
	// message transport and does not affect response execution.
	MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader" json:"meta_header,omitempty"`
	// Carries response verification information. This header is used to
	// authenticate the nodes of the message route and check the correctness of
	// transmission.
	VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader" json:"verify_header,omitempty"`
	// contains filtered or unexported fields
}

Response with current netmap snapshot

func (*NetmapSnapshotResponse) ClearBody

func (x *NetmapSnapshotResponse) ClearBody()

func (*NetmapSnapshotResponse) ClearMetaHeader

func (x *NetmapSnapshotResponse) ClearMetaHeader()

func (*NetmapSnapshotResponse) ClearVerifyHeader

func (x *NetmapSnapshotResponse) ClearVerifyHeader()

func (*NetmapSnapshotResponse) GetBody

func (*NetmapSnapshotResponse) GetMetaHeader

func (x *NetmapSnapshotResponse) GetMetaHeader() *grpc.ResponseMetaHeader

func (*NetmapSnapshotResponse) GetVerifyHeader

func (*NetmapSnapshotResponse) HasBody

func (x *NetmapSnapshotResponse) HasBody() bool

func (*NetmapSnapshotResponse) HasMetaHeader

func (x *NetmapSnapshotResponse) HasMetaHeader() bool

func (*NetmapSnapshotResponse) HasVerifyHeader

func (x *NetmapSnapshotResponse) HasVerifyHeader() bool

func (*NetmapSnapshotResponse) ProtoMessage

func (*NetmapSnapshotResponse) ProtoMessage()

func (*NetmapSnapshotResponse) ProtoReflect

func (x *NetmapSnapshotResponse) ProtoReflect() protoreflect.Message

func (*NetmapSnapshotResponse) Reset

func (x *NetmapSnapshotResponse) Reset()

func (*NetmapSnapshotResponse) SetBody

func (*NetmapSnapshotResponse) SetMetaHeader

func (x *NetmapSnapshotResponse) SetMetaHeader(v *grpc.ResponseMetaHeader)

func (*NetmapSnapshotResponse) SetVerifyHeader

func (*NetmapSnapshotResponse) String

func (x *NetmapSnapshotResponse) String() string

type NetmapSnapshotResponse_Body

type NetmapSnapshotResponse_Body struct {

	// Structure of the requested network map.
	Netmap *Netmap `protobuf:"bytes,1,opt,name=netmap" json:"netmap,omitempty"`
	// contains filtered or unexported fields
}

Get netmap snapshot response body

func (*NetmapSnapshotResponse_Body) ClearNetmap

func (x *NetmapSnapshotResponse_Body) ClearNetmap()

func (*NetmapSnapshotResponse_Body) GetNetmap

func (x *NetmapSnapshotResponse_Body) GetNetmap() *Netmap

func (*NetmapSnapshotResponse_Body) HasNetmap

func (x *NetmapSnapshotResponse_Body) HasNetmap() bool

func (*NetmapSnapshotResponse_Body) ProtoMessage

func (*NetmapSnapshotResponse_Body) ProtoMessage()

func (*NetmapSnapshotResponse_Body) ProtoReflect

func (*NetmapSnapshotResponse_Body) Reset

func (x *NetmapSnapshotResponse_Body) Reset()

func (*NetmapSnapshotResponse_Body) SetNetmap

func (x *NetmapSnapshotResponse_Body) SetNetmap(v *Netmap)

func (*NetmapSnapshotResponse_Body) String

func (x *NetmapSnapshotResponse_Body) String() string

type NetmapSnapshotResponse_Body_builder

type NetmapSnapshotResponse_Body_builder struct {

	// Structure of the requested network map.
	Netmap *Netmap
	// contains filtered or unexported fields
}

func (NetmapSnapshotResponse_Body_builder) Build

type NetmapSnapshotResponse_builder

type NetmapSnapshotResponse_builder struct {

	// Body of get netmap snapshot response message.
	Body *NetmapSnapshotResponse_Body
	// Carries response meta information. Header data is used only to regulate
	// message transport and does not affect response execution.
	MetaHeader *grpc.ResponseMetaHeader
	// Carries response verification information. This header is used to
	// authenticate the nodes of the message route and check the correctness of
	// transmission.
	VerifyHeader *grpc.ResponseVerificationHeader
	// contains filtered or unexported fields
}

func (NetmapSnapshotResponse_builder) Build

type Netmap_builder

type Netmap_builder struct {

	// Network map revision number.
	Epoch *uint64
	// Nodes presented in network.
	Nodes []*NodeInfo
	// contains filtered or unexported fields
}

func (Netmap_builder) Build

func (b0 Netmap_builder) Build() *Netmap

type NetworkConfig

type NetworkConfig struct {

	// List of parameter values
	Parameters []*NetworkConfig_Parameter `protobuf:"bytes,1,rep,name=parameters" json:"parameters,omitempty"`
	// contains filtered or unexported fields
}

FrostFS network configuration

func (*NetworkConfig) GetParameters

func (x *NetworkConfig) GetParameters() []*NetworkConfig_Parameter

func (*NetworkConfig) ProtoMessage

func (*NetworkConfig) ProtoMessage()

func (*NetworkConfig) ProtoReflect

func (x *NetworkConfig) ProtoReflect() protoreflect.Message

func (*NetworkConfig) Reset

func (x *NetworkConfig) Reset()

func (*NetworkConfig) SetParameters

func (x *NetworkConfig) SetParameters(v []*NetworkConfig_Parameter)

func (*NetworkConfig) String

func (x *NetworkConfig) String() string

type NetworkConfig_Parameter

type NetworkConfig_Parameter struct {

	// Parameter key. UTF-8 encoded string
	Key []byte `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
	// Parameter value
	Value []byte `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
	// contains filtered or unexported fields
}

Single configuration parameter. Key MUST be network-unique.

System parameters:

  • **AuditFee** \ Fee paid by the storage group owner to the Inner Ring member. Value: little-endian integer. Default: 0.

  • **BasicIncomeRate** \ Cost of storing one gigabyte of data for a period of one epoch. Paid by container owner to container nodes. Value: little-endian integer. Default: 0.

  • **ContainerAliasFee** \ Fee paid for named container's creation by the container owner. Value: little-endian integer. Default: 0.

  • **ContainerFee** \ Fee paid for container creation by the container owner. Value: little-endian integer. Default: 0.

  • **EpochDuration** \ FrostFS epoch duration measured in Sidechain blocks. Value: little-endian integer. Default: 0.

  • **HomomorphicHashingDisabled** \ Flag of disabling the homomorphic hashing of objects' payload. Value: true if any byte != 0. Default: false.

  • **InnerRingCandidateFee** \ Fee for entrance to the Inner Ring paid by the candidate. Value: little-endian integer. Default: 0.

  • **MaintenanceModeAllowed** \ Flag allowing setting the MAINTENANCE state to storage nodes. Value: true if any byte != 0. Default: false.

  • **MaxObjectSize** \ Maximum size of physically stored FrostFS object measured in bytes. Value: little-endian integer. Default: 0.

    This value refers to the maximum size of a **physically** stored object in FrostFS. However, from a user's perspective, the **logical** size of a stored object can be significantly larger. The relationship between the physical and logical object sizes is governed by the following formula

    ```math \mathrm{Stored\ Object\ Size} \le \frac{ \left(\mathrm{Max\ Object\ Size}\right)^2 }{ \mathrm{Object\ ID\ Size} } ```

    This arises from the fact that a tombstone, also being an object, stores the IDs of inhumed objects and cannot be divided into smaller objects, thus having an upper limit for its size.

    For example, if:

  • Max Object Size Size = 64 MiB;

  • Object ID Size = 32 B;

    then: ```math \mathrm{Stored\ Object\ Size} \le \frac{\left(64\ \mathrm{MiB}\right)^2}{32\ \mathrm{B}} = \frac{2^{52}}{2^5}\ \mathrm{B} = 2^{47}\ \mathrm{B} = 128\ \mathrm{TiB} ```

  • **WithdrawFee** \ Fee paid for withdrawal of funds paid by the account owner. Value: little-endian integer. Default: 0.

  • **MaxECDataCount** \ Maximum number of data shards for EC placement policy. Value: little-endian integer. Default: 0.

  • **MaxECParityCount** \ Maximum number of parity shards for EC placement policy. Value: little-endian integer. Default: 0.

func (*NetworkConfig_Parameter) ClearKey

func (x *NetworkConfig_Parameter) ClearKey()

func (*NetworkConfig_Parameter) ClearValue

func (x *NetworkConfig_Parameter) ClearValue()

func (*NetworkConfig_Parameter) GetKey

func (x *NetworkConfig_Parameter) GetKey() []byte

func (*NetworkConfig_Parameter) GetValue

func (x *NetworkConfig_Parameter) GetValue() []byte

func (*NetworkConfig_Parameter) HasKey

func (x *NetworkConfig_Parameter) HasKey() bool

func (*NetworkConfig_Parameter) HasValue

func (x *NetworkConfig_Parameter) HasValue() bool

func (*NetworkConfig_Parameter) ProtoMessage

func (*NetworkConfig_Parameter) ProtoMessage()

func (*NetworkConfig_Parameter) ProtoReflect

func (x *NetworkConfig_Parameter) ProtoReflect() protoreflect.Message

func (*NetworkConfig_Parameter) Reset

func (x *NetworkConfig_Parameter) Reset()

func (*NetworkConfig_Parameter) SetKey

func (x *NetworkConfig_Parameter) SetKey(v []byte)

func (*NetworkConfig_Parameter) SetValue

func (x *NetworkConfig_Parameter) SetValue(v []byte)

func (*NetworkConfig_Parameter) String

func (x *NetworkConfig_Parameter) String() string

type NetworkConfig_Parameter_builder

type NetworkConfig_Parameter_builder struct {

	// Parameter key. UTF-8 encoded string
	Key []byte
	// Parameter value
	Value []byte
	// contains filtered or unexported fields
}

func (NetworkConfig_Parameter_builder) Build

type NetworkConfig_builder

type NetworkConfig_builder struct {

	// List of parameter values
	Parameters []*NetworkConfig_Parameter
	// contains filtered or unexported fields
}

func (NetworkConfig_builder) Build

type NetworkInfo

type NetworkInfo struct {

	// Number of the current epoch in the FrostFS network
	CurrentEpoch *uint64 `protobuf:"varint,1,opt,name=current_epoch,json=currentEpoch" json:"current_epoch,omitempty"`
	// Magic number of the sidechain of the FrostFS network
	MagicNumber *uint64 `protobuf:"varint,2,opt,name=magic_number,json=magicNumber" json:"magic_number,omitempty"`
	// MillisecondsPerBlock network parameter of the sidechain of the FrostFS
	// network
	MsPerBlock *int64 `protobuf:"varint,3,opt,name=ms_per_block,json=msPerBlock" json:"ms_per_block,omitempty"`
	// FrostFS network configuration
	NetworkConfig *NetworkConfig `protobuf:"bytes,4,opt,name=network_config,json=networkConfig" json:"network_config,omitempty"`
	// contains filtered or unexported fields
}

Information about FrostFS network

func (*NetworkInfo) ClearCurrentEpoch

func (x *NetworkInfo) ClearCurrentEpoch()

func (*NetworkInfo) ClearMagicNumber

func (x *NetworkInfo) ClearMagicNumber()

func (*NetworkInfo) ClearMsPerBlock

func (x *NetworkInfo) ClearMsPerBlock()

func (*NetworkInfo) ClearNetworkConfig

func (x *NetworkInfo) ClearNetworkConfig()

func (*NetworkInfo) GetCurrentEpoch

func (x *NetworkInfo) GetCurrentEpoch() uint64

func (*NetworkInfo) GetMagicNumber

func (x *NetworkInfo) GetMagicNumber() uint64

func (*NetworkInfo) GetMsPerBlock

func (x *NetworkInfo) GetMsPerBlock() int64

func (*NetworkInfo) GetNetworkConfig

func (x *NetworkInfo) GetNetworkConfig() *NetworkConfig

func (*NetworkInfo) HasCurrentEpoch

func (x *NetworkInfo) HasCurrentEpoch() bool

func (*NetworkInfo) HasMagicNumber

func (x *NetworkInfo) HasMagicNumber() bool

func (*NetworkInfo) HasMsPerBlock

func (x *NetworkInfo) HasMsPerBlock() bool

func (*NetworkInfo) HasNetworkConfig

func (x *NetworkInfo) HasNetworkConfig() bool

func (*NetworkInfo) ProtoMessage

func (*NetworkInfo) ProtoMessage()

func (*NetworkInfo) ProtoReflect

func (x *NetworkInfo) ProtoReflect() protoreflect.Message

func (*NetworkInfo) Reset

func (x *NetworkInfo) Reset()

func (*NetworkInfo) SetCurrentEpoch

func (x *NetworkInfo) SetCurrentEpoch(v uint64)

func (*NetworkInfo) SetMagicNumber

func (x *NetworkInfo) SetMagicNumber(v uint64)

func (*NetworkInfo) SetMsPerBlock

func (x *NetworkInfo) SetMsPerBlock(v int64)

func (*NetworkInfo) SetNetworkConfig

func (x *NetworkInfo) SetNetworkConfig(v *NetworkConfig)

func (*NetworkInfo) String

func (x *NetworkInfo) String() string

type NetworkInfoRequest

type NetworkInfoRequest struct {

	// Body of the NetworkInfo request message
	Body *NetworkInfoRequest_Body `protobuf:"bytes,1,opt,name=body" json:"body,omitempty"`
	// Carries request meta information. Header data is used only to regulate
	// message transport and does not affect request execution.
	MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader" json:"meta_header,omitempty"`
	// Carries request verification information. This header is used to
	// authenticate the nodes of the message route and check the correctness of
	// transmission.
	VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader" json:"verify_header,omitempty"`
	// contains filtered or unexported fields
}

Get NetworkInfo structure with the network view from a particular node.

func (*NetworkInfoRequest) ClearBody

func (x *NetworkInfoRequest) ClearBody()

func (*NetworkInfoRequest) ClearMetaHeader

func (x *NetworkInfoRequest) ClearMetaHeader()

func (*NetworkInfoRequest) ClearVerifyHeader

func (x *NetworkInfoRequest) ClearVerifyHeader()

func (*NetworkInfoRequest) GetBody

func (*NetworkInfoRequest) GetMetaHeader

func (x *NetworkInfoRequest) GetMetaHeader() *grpc.RequestMetaHeader

func (*NetworkInfoRequest) GetVerifyHeader

func (x *NetworkInfoRequest) GetVerifyHeader() *grpc.RequestVerificationHeader

func (*NetworkInfoRequest) HasBody

func (x *NetworkInfoRequest) HasBody() bool

func (*NetworkInfoRequest) HasMetaHeader

func (x *NetworkInfoRequest) HasMetaHeader() bool

func (*NetworkInfoRequest) HasVerifyHeader

func (x *NetworkInfoRequest) HasVerifyHeader() bool

func (*NetworkInfoRequest) ProtoMessage

func (*NetworkInfoRequest) ProtoMessage()

func (*NetworkInfoRequest) ProtoReflect

func (x *NetworkInfoRequest) ProtoReflect() protoreflect.Message

func (*NetworkInfoRequest) Reset

func (x *NetworkInfoRequest) Reset()

func (*NetworkInfoRequest) SetBody

func (*NetworkInfoRequest) SetMetaHeader

func (x *NetworkInfoRequest) SetMetaHeader(v *grpc.RequestMetaHeader)

func (*NetworkInfoRequest) SetVerifyHeader

func (x *NetworkInfoRequest) SetVerifyHeader(v *grpc.RequestVerificationHeader)

func (*NetworkInfoRequest) String

func (x *NetworkInfoRequest) String() string

type NetworkInfoRequest_Body

type NetworkInfoRequest_Body struct {
	// contains filtered or unexported fields
}

NetworkInfo request body is empty.

func (*NetworkInfoRequest_Body) ProtoMessage

func (*NetworkInfoRequest_Body) ProtoMessage()

func (*NetworkInfoRequest_Body) ProtoReflect

func (x *NetworkInfoRequest_Body) ProtoReflect() protoreflect.Message

func (*NetworkInfoRequest_Body) Reset

func (x *NetworkInfoRequest_Body) Reset()

func (*NetworkInfoRequest_Body) String

func (x *NetworkInfoRequest_Body) String() string

type NetworkInfoRequest_Body_builder

type NetworkInfoRequest_Body_builder struct {
	// contains filtered or unexported fields
}

func (NetworkInfoRequest_Body_builder) Build

type NetworkInfoRequest_builder

type NetworkInfoRequest_builder struct {

	// Body of the NetworkInfo request message
	Body *NetworkInfoRequest_Body
	// Carries request meta information. Header data is used only to regulate
	// message transport and does not affect request execution.
	MetaHeader *grpc.RequestMetaHeader
	// Carries request verification information. This header is used to
	// authenticate the nodes of the message route and check the correctness of
	// transmission.
	VerifyHeader *grpc.RequestVerificationHeader
	// contains filtered or unexported fields
}

func (NetworkInfoRequest_builder) Build

type NetworkInfoResponse

type NetworkInfoResponse struct {

	// Body of the NetworkInfo response message.
	Body *NetworkInfoResponse_Body `protobuf:"bytes,1,opt,name=body" json:"body,omitempty"`
	// Carries response meta information. Header data is used only to regulate
	// message transport and does not affect response execution.
	MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader" json:"meta_header,omitempty"`
	// Carries response verification information. This header is used to
	// authenticate the nodes of the message route and check the correctness of
	// transmission.
	VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader" json:"verify_header,omitempty"`
	// contains filtered or unexported fields
}

Response with NetworkInfo structure including current epoch and sidechain magic number.

func (*NetworkInfoResponse) ClearBody

func (x *NetworkInfoResponse) ClearBody()

func (*NetworkInfoResponse) ClearMetaHeader

func (x *NetworkInfoResponse) ClearMetaHeader()

func (*NetworkInfoResponse) ClearVerifyHeader

func (x *NetworkInfoResponse) ClearVerifyHeader()

func (*NetworkInfoResponse) GetBody

func (*NetworkInfoResponse) GetMetaHeader

func (x *NetworkInfoResponse) GetMetaHeader() *grpc.ResponseMetaHeader

func (*NetworkInfoResponse) GetVerifyHeader

func (x *NetworkInfoResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader

func (*NetworkInfoResponse) HasBody

func (x *NetworkInfoResponse) HasBody() bool

func (*NetworkInfoResponse) HasMetaHeader

func (x *NetworkInfoResponse) HasMetaHeader() bool

func (*NetworkInfoResponse) HasVerifyHeader

func (x *NetworkInfoResponse) HasVerifyHeader() bool

func (*NetworkInfoResponse) ProtoMessage

func (*NetworkInfoResponse) ProtoMessage()

func (*NetworkInfoResponse) ProtoReflect

func (x *NetworkInfoResponse) ProtoReflect() protoreflect.Message

func (*NetworkInfoResponse) Reset

func (x *NetworkInfoResponse) Reset()

func (*NetworkInfoResponse) SetBody

func (*NetworkInfoResponse) SetMetaHeader

func (x *NetworkInfoResponse) SetMetaHeader(v *grpc.ResponseMetaHeader)

func (*NetworkInfoResponse) SetVerifyHeader

func (x *NetworkInfoResponse) SetVerifyHeader(v *grpc.ResponseVerificationHeader)

func (*NetworkInfoResponse) String

func (x *NetworkInfoResponse) String() string

type NetworkInfoResponse_Body

type NetworkInfoResponse_Body struct {

	// NetworkInfo structure with recent information.
	NetworkInfo *NetworkInfo `protobuf:"bytes,1,opt,name=network_info,json=networkInfo" json:"network_info,omitempty"`
	// contains filtered or unexported fields
}

Information about the network.

func (*NetworkInfoResponse_Body) ClearNetworkInfo

func (x *NetworkInfoResponse_Body) ClearNetworkInfo()

func (*NetworkInfoResponse_Body) GetNetworkInfo

func (x *NetworkInfoResponse_Body) GetNetworkInfo() *NetworkInfo

func (*NetworkInfoResponse_Body) HasNetworkInfo

func (x *NetworkInfoResponse_Body) HasNetworkInfo() bool

func (*NetworkInfoResponse_Body) ProtoMessage

func (*NetworkInfoResponse_Body) ProtoMessage()

func (*NetworkInfoResponse_Body) ProtoReflect

func (x *NetworkInfoResponse_Body) ProtoReflect() protoreflect.Message

func (*NetworkInfoResponse_Body) Reset

func (x *NetworkInfoResponse_Body) Reset()

func (*NetworkInfoResponse_Body) SetNetworkInfo

func (x *NetworkInfoResponse_Body) SetNetworkInfo(v *NetworkInfo)

func (*NetworkInfoResponse_Body) String

func (x *NetworkInfoResponse_Body) String() string

type NetworkInfoResponse_Body_builder

type NetworkInfoResponse_Body_builder struct {

	// NetworkInfo structure with recent information.
	NetworkInfo *NetworkInfo
	// contains filtered or unexported fields
}

func (NetworkInfoResponse_Body_builder) Build

type NetworkInfoResponse_builder

type NetworkInfoResponse_builder struct {

	// Body of the NetworkInfo response message.
	Body *NetworkInfoResponse_Body
	// Carries response meta information. Header data is used only to regulate
	// message transport and does not affect response execution.
	MetaHeader *grpc.ResponseMetaHeader
	// Carries response verification information. This header is used to
	// authenticate the nodes of the message route and check the correctness of
	// transmission.
	VerifyHeader *grpc.ResponseVerificationHeader
	// contains filtered or unexported fields
}

func (NetworkInfoResponse_builder) Build

type NetworkInfo_builder

type NetworkInfo_builder struct {

	// Number of the current epoch in the FrostFS network
	CurrentEpoch *uint64
	// Magic number of the sidechain of the FrostFS network
	MagicNumber *uint64
	// MillisecondsPerBlock network parameter of the sidechain of the FrostFS
	// network
	MsPerBlock *int64
	// FrostFS network configuration
	NetworkConfig *NetworkConfig
	// contains filtered or unexported fields
}

func (NetworkInfo_builder) Build

func (b0 NetworkInfo_builder) Build() *NetworkInfo

type NodeInfo

type NodeInfo struct {

	// Public key of the FrostFS node in a binary format
	PublicKey []byte `protobuf:"bytes,1,opt,name=public_key,json=publicKey" json:"public_key,omitempty"`
	// Ways to connect to a node
	Addresses []string `protobuf:"bytes,2,rep,name=addresses" json:"addresses,omitempty"`
	// Carries list of the FrostFS node attributes in a key-value form. Key name
	// must be a node-unique valid UTF-8 string. Value can't be empty. NodeInfo
	// structures with duplicated attribute names or attributes with empty values
	// will be considered invalid.
	Attributes []*NodeInfo_Attribute `protobuf:"bytes,3,rep,name=attributes" json:"attributes,omitempty"`
	// Carries state of the FrostFS node
	State *NodeInfo_State `protobuf:"varint,4,opt,name=state,enum=frost.fs.netmap.NodeInfo_State" json:"state,omitempty"`
	// contains filtered or unexported fields
}

FrostFS node description

func (*NodeInfo) ClearPublicKey

func (x *NodeInfo) ClearPublicKey()

func (*NodeInfo) ClearState

func (x *NodeInfo) ClearState()

func (*NodeInfo) GetAddresses

func (x *NodeInfo) GetAddresses() []string

func (*NodeInfo) GetAttributes

func (x *NodeInfo) GetAttributes() []*NodeInfo_Attribute

func (*NodeInfo) GetPublicKey

func (x *NodeInfo) GetPublicKey() []byte

func (*NodeInfo) GetState

func (x *NodeInfo) GetState() NodeInfo_State

func (*NodeInfo) HasPublicKey

func (x *NodeInfo) HasPublicKey() bool

func (*NodeInfo) HasState

func (x *NodeInfo) HasState() bool

func (*NodeInfo) ProtoMessage

func (*NodeInfo) ProtoMessage()

func (*NodeInfo) ProtoReflect

func (x *NodeInfo) ProtoReflect() protoreflect.Message

func (*NodeInfo) Reset

func (x *NodeInfo) Reset()

func (*NodeInfo) SetAddresses

func (x *NodeInfo) SetAddresses(v []string)

func (*NodeInfo) SetAttributes

func (x *NodeInfo) SetAttributes(v []*NodeInfo_Attribute)

func (*NodeInfo) SetPublicKey

func (x *NodeInfo) SetPublicKey(v []byte)

func (*NodeInfo) SetState

func (x *NodeInfo) SetState(v NodeInfo_State)

func (*NodeInfo) String

func (x *NodeInfo) String() string

type NodeInfo_Attribute

type NodeInfo_Attribute struct {

	// Key of the node attribute
	Key *string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
	// Value of the node attribute
	Value *string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
	// Parent keys, if any. For example for `City` it could be `Region` and
	// `Country`.
	Parents []string `protobuf:"bytes,3,rep,name=parents" json:"parents,omitempty"`
	// contains filtered or unexported fields
}

Administrator-defined Attributes of the FrostFS Storage Node.

`Attribute` is a Key-Value metadata pair. Key name must be a valid UTF-8 string. Value can't be empty.

Attributes can be constructed into a chain of attributes: any attribute can have a parent attribute and a child attribute (except the first and the last one). A string representation of the chain of attributes in FrostFS Storage Node configuration uses ":" and "/" symbols, e.g.:

`FrostFS_NODE_ATTRIBUTE_1=key1:val1/key2:val2`

Therefore the string attribute representation in the Node configuration must use "\:", "\/" and "\\" escaped symbols if any of them appears in an attribute's key or value.

Node's attributes are mostly used during Storage Policy evaluation to calculate object's placement and find a set of nodes satisfying policy requirements. There are some "well-known" node attributes common to all the Storage Nodes in the network and used implicitly with default values if not explicitly set:

  • Capacity \ Total available disk space in Gigabytes.
  • Price \ Price in GAS tokens for storing one GB of data during one Epoch. In node attributes it's a string presenting floating point number with comma or point delimiter for decimal part. In the Network Map it will be saved as 64-bit unsigned integer representing number of minimal token fractions.
  • UN-LOCODE \ Node's geographic location in UN/LOCODE(https://www.unece.org/cefact/codesfortrade/codes_index.html) format approximated to the nearest point defined in the standard.
  • CountryCode \ Country code in [ISO 3166-1_alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. Calculated automatically from `UN-LOCODE` attribute.
  • Country \ Country short name in English, as defined in [ISO-3166](https://www.iso.org/obp/ui/#search). Calculated automatically from `UN-LOCODE` attribute.
  • Location \ Place names are given, whenever possible, in their national language versions as expressed in the Roman alphabet using the 26 characters of the character set adopted for international trade data interchange, written without diacritics . Calculated automatically from `UN-LOCODE` attribute.
  • SubDivCode \ Country's administrative subdivision where node is located. Calculated automatically from `UN-LOCODE` attribute based on `SubDiv` field. Presented in [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format.
  • SubDiv \ Country's administrative subdivision name, as defined in [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2). Calculated automatically from `UN-LOCODE` attribute.
  • Continent \ Node's continent name according to the [Seven-Continent model](https://en.wikipedia.org/wiki/Continent#Number). Calculated automatically from `UN-LOCODE` attribute.
  • ExternalAddr Node's preferred way for communications with external clients. Clients SHOULD use these addresses if possible. Must contain a comma-separated list of multi-addresses.

For detailed description of each well-known attribute please see the corresponding section in FrostFS Technical Specification.

func (*NodeInfo_Attribute) ClearKey

func (x *NodeInfo_Attribute) ClearKey()

func (*NodeInfo_Attribute) ClearValue

func (x *NodeInfo_Attribute) ClearValue()

func (*NodeInfo_Attribute) GetKey

func (x *NodeInfo_Attribute) GetKey() string

func (*NodeInfo_Attribute) GetParents

func (x *NodeInfo_Attribute) GetParents() []string

func (*NodeInfo_Attribute) GetValue

func (x *NodeInfo_Attribute) GetValue() string

func (*NodeInfo_Attribute) HasKey

func (x *NodeInfo_Attribute) HasKey() bool

func (*NodeInfo_Attribute) HasValue

func (x *NodeInfo_Attribute) HasValue() bool

func (*NodeInfo_Attribute) ProtoMessage

func (*NodeInfo_Attribute) ProtoMessage()

func (*NodeInfo_Attribute) ProtoReflect

func (x *NodeInfo_Attribute) ProtoReflect() protoreflect.Message

func (*NodeInfo_Attribute) Reset

func (x *NodeInfo_Attribute) Reset()

func (*NodeInfo_Attribute) SetKey

func (x *NodeInfo_Attribute) SetKey(v string)

func (*NodeInfo_Attribute) SetParents

func (x *NodeInfo_Attribute) SetParents(v []string)

func (*NodeInfo_Attribute) SetValue

func (x *NodeInfo_Attribute) SetValue(v string)

func (*NodeInfo_Attribute) String

func (x *NodeInfo_Attribute) String() string

type NodeInfo_Attribute_builder

type NodeInfo_Attribute_builder struct {

	// Key of the node attribute
	Key *string
	// Value of the node attribute
	Value *string
	// Parent keys, if any. For example for `City` it could be `Region` and
	// `Country`.
	Parents []string
	// contains filtered or unexported fields
}

func (NodeInfo_Attribute_builder) Build

type NodeInfo_State

type NodeInfo_State int32

Represents the enumeration of various states of the FrostFS node.

const (
	// Unknown state
	NodeInfo_UNSPECIFIED NodeInfo_State = 0
	// Active state in the network
	NodeInfo_ONLINE NodeInfo_State = 1
	// Network unavailable state
	NodeInfo_OFFLINE NodeInfo_State = 2
	// Maintenance state
	NodeInfo_MAINTENANCE NodeInfo_State = 3
)

func (NodeInfo_State) Descriptor

func (NodeInfo_State) Enum

func (x NodeInfo_State) Enum() *NodeInfo_State

func (NodeInfo_State) Number

func (NodeInfo_State) String

func (x NodeInfo_State) String() string

func (NodeInfo_State) Type

type NodeInfo_builder

type NodeInfo_builder struct {

	// Public key of the FrostFS node in a binary format
	PublicKey []byte
	// Ways to connect to a node
	Addresses []string
	// Carries list of the FrostFS node attributes in a key-value form. Key name
	// must be a node-unique valid UTF-8 string. Value can't be empty. NodeInfo
	// structures with duplicated attribute names or attributes with empty values
	// will be considered invalid.
	Attributes []*NodeInfo_Attribute
	// Carries state of the FrostFS node
	State *NodeInfo_State
	// contains filtered or unexported fields
}

func (NodeInfo_builder) Build

func (b0 NodeInfo_builder) Build() *NodeInfo

type Operation

type Operation int32

Operations on filters

const (
	// No Operation defined
	Operation_OPERATION_UNSPECIFIED Operation = 0
	// Equal
	Operation_EQ Operation = 1
	// Not Equal
	Operation_NE Operation = 2
	// Greater then
	Operation_GT Operation = 3
	// Greater or equal
	Operation_GE Operation = 4
	// Less then
	Operation_LT Operation = 5
	// Less or equal
	Operation_LE Operation = 6
	// Logical OR
	Operation_OR Operation = 7
	// Logical AND
	Operation_AND Operation = 8
	// Logical negation
	Operation_NOT Operation = 9
	// Matches pattern
	Operation_LIKE Operation = 10
)

func (Operation) Descriptor

func (Operation) Descriptor() protoreflect.EnumDescriptor

func (Operation) Enum

func (x Operation) Enum() *Operation

func (Operation) Number

func (x Operation) Number() protoreflect.EnumNumber

func (Operation) String

func (x Operation) String() string

func (Operation) Type

type PlacementPolicy

type PlacementPolicy struct {

	// Rules to set number of object replicas and place each one into a named
	// bucket
	Replicas []*Replica `protobuf:"bytes,1,rep,name=replicas" json:"replicas,omitempty"`
	// Container backup factor controls how deep FrostFS will search for nodes
	// alternatives to include into container's nodes subset
	ContainerBackupFactor *uint32 `protobuf:"varint,2,opt,name=container_backup_factor,json=containerBackupFactor" json:"container_backup_factor,omitempty"`
	// Set of Selectors to form the container's nodes subset
	Selectors []*Selector `protobuf:"bytes,3,rep,name=selectors" json:"selectors,omitempty"`
	// List of named filters to reference in selectors
	Filters []*Filter `protobuf:"bytes,4,rep,name=filters" json:"filters,omitempty"`
	// Unique flag defines non-overlapping application for replicas
	Unique *bool `protobuf:"varint,5,opt,name=unique" json:"unique,omitempty"`
	// contains filtered or unexported fields
}

Set of rules to select a subset of nodes from `NetworkMap` able to store container's objects. The format is simple enough to transpile from different storage policy definition languages.

func (*PlacementPolicy) ClearContainerBackupFactor

func (x *PlacementPolicy) ClearContainerBackupFactor()

func (*PlacementPolicy) ClearUnique

func (x *PlacementPolicy) ClearUnique()

func (*PlacementPolicy) GetContainerBackupFactor

func (x *PlacementPolicy) GetContainerBackupFactor() uint32

func (*PlacementPolicy) GetFilters

func (x *PlacementPolicy) GetFilters() []*Filter

func (*PlacementPolicy) GetReplicas

func (x *PlacementPolicy) GetReplicas() []*Replica

func (*PlacementPolicy) GetSelectors

func (x *PlacementPolicy) GetSelectors() []*Selector

func (*PlacementPolicy) GetUnique

func (x *PlacementPolicy) GetUnique() bool

func (*PlacementPolicy) HasContainerBackupFactor

func (x *PlacementPolicy) HasContainerBackupFactor() bool

func (*PlacementPolicy) HasUnique

func (x *PlacementPolicy) HasUnique() bool

func (*PlacementPolicy) ProtoMessage

func (*PlacementPolicy) ProtoMessage()

func (*PlacementPolicy) ProtoReflect

func (x *PlacementPolicy) ProtoReflect() protoreflect.Message

func (*PlacementPolicy) Reset

func (x *PlacementPolicy) Reset()

func (*PlacementPolicy) SetContainerBackupFactor

func (x *PlacementPolicy) SetContainerBackupFactor(v uint32)

func (*PlacementPolicy) SetFilters

func (x *PlacementPolicy) SetFilters(v []*Filter)

func (*PlacementPolicy) SetReplicas

func (x *PlacementPolicy) SetReplicas(v []*Replica)

func (*PlacementPolicy) SetSelectors

func (x *PlacementPolicy) SetSelectors(v []*Selector)

func (*PlacementPolicy) SetUnique

func (x *PlacementPolicy) SetUnique(v bool)

func (*PlacementPolicy) String

func (x *PlacementPolicy) String() string

type PlacementPolicy_builder

type PlacementPolicy_builder struct {

	// Rules to set number of object replicas and place each one into a named
	// bucket
	Replicas []*Replica
	// Container backup factor controls how deep FrostFS will search for nodes
	// alternatives to include into container's nodes subset
	ContainerBackupFactor *uint32
	// Set of Selectors to form the container's nodes subset
	Selectors []*Selector
	// List of named filters to reference in selectors
	Filters []*Filter
	// Unique flag defines non-overlapping application for replicas
	Unique *bool
	// contains filtered or unexported fields
}

func (PlacementPolicy_builder) Build

type Replica

type Replica struct {

	// How many object replicas to put
	Count *uint32 `protobuf:"varint,1,opt,name=count" json:"count,omitempty"`
	// Named selector bucket to put replicas
	Selector *string `protobuf:"bytes,2,opt,name=selector" json:"selector,omitempty"`
	// Data shards count
	EcDataCount *uint32 `protobuf:"varint,3,opt,name=ec_data_count,json=ecDataCount" json:"ec_data_count,omitempty"`
	// Parity shards count
	EcParityCount *uint32 `protobuf:"varint,4,opt,name=ec_parity_count,json=ecParityCount" json:"ec_parity_count,omitempty"`
	// Use all nodes from the node set defined by the selector.
	// This flag is applicable only to the 'REP' selector and cannot be used for
	// 'EC'.
	Wildcard *bool `protobuf:"varint,5,opt,name=wildcard" json:"wildcard,omitempty"`
	// contains filtered or unexported fields
}

Number of object replicas in a set of nodes from the defined selector. If no selector set, the root bucket containing all possible nodes will be used by default.

func (*Replica) ClearCount

func (x *Replica) ClearCount()

func (*Replica) ClearEcDataCount

func (x *Replica) ClearEcDataCount()

func (*Replica) ClearEcParityCount

func (x *Replica) ClearEcParityCount()

func (*Replica) ClearSelector

func (x *Replica) ClearSelector()

func (*Replica) ClearWildcard

func (x *Replica) ClearWildcard()

func (*Replica) GetCount

func (x *Replica) GetCount() uint32

func (*Replica) GetEcDataCount

func (x *Replica) GetEcDataCount() uint32

func (*Replica) GetEcParityCount

func (x *Replica) GetEcParityCount() uint32

func (*Replica) GetSelector

func (x *Replica) GetSelector() string

func (*Replica) GetWildcard

func (x *Replica) GetWildcard() bool

func (*Replica) HasCount

func (x *Replica) HasCount() bool

func (*Replica) HasEcDataCount

func (x *Replica) HasEcDataCount() bool

func (*Replica) HasEcParityCount

func (x *Replica) HasEcParityCount() bool

func (*Replica) HasSelector

func (x *Replica) HasSelector() bool

func (*Replica) HasWildcard

func (x *Replica) HasWildcard() bool

func (*Replica) ProtoMessage

func (*Replica) ProtoMessage()

func (*Replica) ProtoReflect

func (x *Replica) ProtoReflect() protoreflect.Message

func (*Replica) Reset

func (x *Replica) Reset()

func (*Replica) SetCount

func (x *Replica) SetCount(v uint32)

func (*Replica) SetEcDataCount

func (x *Replica) SetEcDataCount(v uint32)

func (*Replica) SetEcParityCount

func (x *Replica) SetEcParityCount(v uint32)

func (*Replica) SetSelector

func (x *Replica) SetSelector(v string)

func (*Replica) SetWildcard

func (x *Replica) SetWildcard(v bool)

func (*Replica) String

func (x *Replica) String() string

type Replica_builder

type Replica_builder struct {

	// How many object replicas to put
	Count *uint32
	// Named selector bucket to put replicas
	Selector *string
	// Data shards count
	EcDataCount *uint32
	// Parity shards count
	EcParityCount *uint32
	// Use all nodes from the node set defined by the selector.
	// This flag is applicable only to the 'REP' selector and cannot be used for
	// 'EC'.
	Wildcard *bool
	// contains filtered or unexported fields
}

func (Replica_builder) Build

func (b0 Replica_builder) Build() *Replica

type Selector

type Selector struct {

	// Selector name to reference in object placement section
	Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	// How many nodes to select from the bucket
	Count *uint32 `protobuf:"varint,2,opt,name=count" json:"count,omitempty"`
	// Selector modifier showing how to form a bucket
	Clause *Clause `protobuf:"varint,3,opt,name=clause,enum=frost.fs.netmap.Clause" json:"clause,omitempty"`
	// Bucket attribute to select from
	Attribute *string `protobuf:"bytes,4,opt,name=attribute" json:"attribute,omitempty"`
	// Filter reference to select from
	Filter *string `protobuf:"bytes,5,opt,name=filter" json:"filter,omitempty"`
	// Use all nodes from the bucket.
	Wildcard *bool `protobuf:"varint,6,opt,name=wildcard" json:"wildcard,omitempty"`
	// contains filtered or unexported fields
}

Selector chooses a number of nodes from the bucket taking the nearest nodes to the provided `ContainerID` by hash distance.

func (*Selector) ClearAttribute

func (x *Selector) ClearAttribute()

func (*Selector) ClearClause

func (x *Selector) ClearClause()

func (*Selector) ClearCount

func (x *Selector) ClearCount()

func (*Selector) ClearFilter

func (x *Selector) ClearFilter()

func (*Selector) ClearName

func (x *Selector) ClearName()

func (*Selector) ClearWildcard

func (x *Selector) ClearWildcard()

func (*Selector) GetAttribute

func (x *Selector) GetAttribute() string

func (*Selector) GetClause

func (x *Selector) GetClause() Clause

func (*Selector) GetCount

func (x *Selector) GetCount() uint32

func (*Selector) GetFilter

func (x *Selector) GetFilter() string

func (*Selector) GetName

func (x *Selector) GetName() string

func (*Selector) GetWildcard

func (x *Selector) GetWildcard() bool

func (*Selector) HasAttribute

func (x *Selector) HasAttribute() bool

func (*Selector) HasClause

func (x *Selector) HasClause() bool

func (*Selector) HasCount

func (x *Selector) HasCount() bool

func (*Selector) HasFilter

func (x *Selector) HasFilter() bool

func (*Selector) HasName

func (x *Selector) HasName() bool

func (*Selector) HasWildcard

func (x *Selector) HasWildcard() bool

func (*Selector) ProtoMessage

func (*Selector) ProtoMessage()

func (*Selector) ProtoReflect

func (x *Selector) ProtoReflect() protoreflect.Message

func (*Selector) Reset

func (x *Selector) Reset()

func (*Selector) SetAttribute

func (x *Selector) SetAttribute(v string)

func (*Selector) SetClause

func (x *Selector) SetClause(v Clause)

func (*Selector) SetCount

func (x *Selector) SetCount(v uint32)

func (*Selector) SetFilter

func (x *Selector) SetFilter(v string)

func (*Selector) SetName

func (x *Selector) SetName(v string)

func (*Selector) SetWildcard

func (x *Selector) SetWildcard(v bool)

func (*Selector) String

func (x *Selector) String() string

type Selector_builder

type Selector_builder struct {

	// Selector name to reference in object placement section
	Name *string
	// How many nodes to select from the bucket
	Count *uint32
	// Selector modifier showing how to form a bucket
	Clause *Clause
	// Bucket attribute to select from
	Attribute *string
	// Filter reference to select from
	Filter *string
	// Use all nodes from the bucket.
	Wildcard *bool
	// contains filtered or unexported fields
}

func (Selector_builder) Build

func (b0 Selector_builder) Build() *Selector

type UnimplementedNetmapServiceServer

type UnimplementedNetmapServiceServer struct{}

UnimplementedNetmapServiceServer should be embedded to have forward compatible implementations.

NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.

func (UnimplementedNetmapServiceServer) LocalNodeInfo

func (UnimplementedNetmapServiceServer) NetmapSnapshot

func (UnimplementedNetmapServiceServer) NetworkInfo

type UnsafeNetmapServiceServer

type UnsafeNetmapServiceServer interface {
	// contains filtered or unexported methods
}

UnsafeNetmapServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to NetmapServiceServer will result in compilation errors.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL