frostfs-api/storagegroup/types.proto

35 lines
1.5 KiB
Protocol Buffer
Raw Permalink Normal View History

2020-01-30 11:41:24 +00:00
syntax = "proto3";
package neo.fs.v2.storagegroup;
option go_package = "github.com/TrueCloudLab/frostfs-api-go/v2/storagegroup/grpc;storagegroup";
option csharp_namespace = "Neo.FileStorage.API.StorageGroup";
2020-01-30 11:41:24 +00:00
import "refs/types.proto";
2020-01-30 11:41:24 +00:00
// StorageGroup keeps verification information for Data Audit sessions. Objects
// that require paid storage guarantees are gathered in `StorageGroups` with
// additional information used for the proof of storage. `StorageGroup` only
// contains objects from the same container.
//
// Being an object payload, StorageGroup may have expiration Epoch set with
// `__NEOFS__EXPIRATION_EPOCH` well-known attribute. When expired, StorageGroup
// will be ignored by InnerRing nodes during Data Audit cycles and will be
// deleted by Storage Nodes.
//
2020-01-30 11:41:24 +00:00
message StorageGroup {
// Total size of the payloads of objects in the storage group
uint64 validation_data_size = 1 [json_name = "validationDataSize"];
// Homomorphic hash from the concatenation of the payloads of the storage
// group members. The order of concatenation is the same as the order of the
// members in the `members` field.
neo.fs.v2.refs.Checksum validation_hash = 2 [json_name = "validationHash"];
2020-01-30 11:41:24 +00:00
// DEPRECATED. Last NeoFS epoch number of the storage group lifetime
uint64 expiration_epoch = 3 [json_name = "expirationEpoch", deprecated = true];
// Strictly ordered list of storage group member objects. Members MUST be unique
repeated neo.fs.v2.refs.ObjectID members = 4 [json_name = "members"];
2020-01-30 11:41:24 +00:00
}