[#69] object: Initial EC implementation

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
This commit is contained in:
Evgenii Stratonikov 2024-03-19 09:55:23 +03:00
parent a85146250b
commit 1772b92182
30 changed files with 1240 additions and 613 deletions

View file

@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.30.0
// protoc v4.23.4
// protoc-gen-go v1.33.0
// protoc v4.25.3
// source: container/grpc/types.proto
package container
@ -24,8 +24,8 @@ const (
// Container is a structure that defines object placement behaviour. Objects can
// be stored only within containers. They define placement rule, attributes and
// access control information. An ID of a container is a 32 byte long SHA256 hash
// of stable-marshalled container message.
// access control information. An ID of a container is a 32 byte long SHA256
// hash of stable-marshalled container message.
type Container struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@ -38,8 +38,8 @@ type Container struct {
OwnerId *grpc.OwnerID `protobuf:"bytes,2,opt,name=owner_id,json=ownerID,proto3" json:"owner_id,omitempty"`
// Nonce is a 16 byte UUIDv4, used to avoid collisions of `ContainerID`s
Nonce []byte `protobuf:"bytes,3,opt,name=nonce,proto3" json:"nonce,omitempty"`
// `BasicACL` contains access control rules for the owner, system and others groups,
// as well as permission bits for `BearerToken` and `Extended ACL`
// `BasicACL` contains access control rules for the owner, system and others
// groups, as well as permission bits for `BearerToken` and `Extended ACL`
BasicAcl uint32 `protobuf:"varint,4,opt,name=basic_acl,json=basicACL,proto3" json:"basic_acl,omitempty"`
// Attributes represent immutable container's meta data
Attributes []*Container_Attribute `protobuf:"bytes,5,rep,name=attributes,proto3" json:"attributes,omitempty"`
@ -122,8 +122,8 @@ func (x *Container) GetPlacementPolicy() *grpc1.PlacementPolicy {
}
// `Attribute` is a user-defined Key-Value metadata pair attached to the
// container. Container attributes are immutable. They are set at the moment of
// container creation and can never be added or updated.
// container. Container attributes are immutable. They are set at the moment
// of container creation and can never be added or updated.
//
// Key name must be a container-unique valid UTF-8 string. Value can't be
// empty. Containers with duplicated attribute names or attributes with empty
@ -137,15 +137,16 @@ func (x *Container) GetPlacementPolicy() *grpc1.PlacementPolicy {
// NNS contract.
// - [ __SYSTEM__ZONE ] \
// (`__NEOFS__ZONE` is deprecated) \
// String of a zone for `__SYSTEM__NAME` (`__NEOFS__NAME` is deprecated). Used as a TLD of a domain name in NNS
// contract. If no zone is specified, use default zone: `container`.
// String of a zone for `__SYSTEM__NAME` (`__NEOFS__NAME` is deprecated).
// Used as a TLD of a domain name in NNS contract. If no zone is specified,
// use default zone: `container`.
// - [ __SYSTEM__DISABLE_HOMOMORPHIC_HASHING ] \
// (`__NEOFS__DISABLE_HOMOMORPHIC_HASHING` is deprecated) \
// Disables homomorphic hashing for the container if the value equals "true" string.
// Any other values are interpreted as missing attribute. Container could be
// accepted in a NeoFS network only if the global network hashing configuration
// value corresponds with that attribute's value. After container inclusion, network
// setting is ignored.
// Disables homomorphic hashing for the container if the value equals "true"
// string. Any other values are interpreted as missing attribute. Container
// could be accepted in a NeoFS network only if the global network hashing
// configuration value corresponds with that attribute's value. After
// container inclusion, network setting is ignored.
//
// And some well-known attributes used by applications only:
//