syntax = "proto3"; package neo.fs.v2.refs; option go_package = "github.com/nspcc-dev/neofs-api-go/v2/refs/grpc;refs"; option csharp_namespace = "NeoFS.API.v2.Refs"; // Object in NeoFS can be addressed by it's ContainerID and ObjectID. In string // format there MUST be a '/' delimeter between them. message Address { // Container identifier ContainerID container_id = 1; // Object identifier ObjectID object_id = 2; } // 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. message ObjectID { // Object identifier in a binary format bytes value = 1; } // NeoFS container identifier. Container structures are immutable and // content-addressed. `ContainerID` is a 32 byte long SHA256 hash of // stable-marshalled container message. message ContainerID { // Container identifier in a binary format. bytes value = 1; } // 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`. message OwnerID { // Identifier of the container owner in a binary format bytes value = 1; } // API version used by a node. message Version { // Major API version uint32 major = 1; // Minor API version uint32 minor = 2; } // Signature of something in NeoFS. message Signature { // Public key used for signing bytes key = 1; // Signature bytes sign = 2; } // Checksum algorithm type. enum ChecksumType { // Unknown. Not used CHECKSUM_TYPE_UNSPECIFIED = 0; // Tillich-Zemor homomorphic hash function TZ = 1; // SHA-256 SHA256 = 2; } // Checksum message. message Checksum { // Checksum algorithm type ChecksumType type = 1; // Checksum itself bytes sum = 2; }