Replaces import of PlacementRule message from netmap repository with a message
from the internal netmap package.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
There is a need to remove gogoproto usage from NeoFS API since this plugin
is not cross-language. This commit removes usage from container package.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
There is a need to remove gogoproto usage from NeoFS API since this plugin
is not cross-language. This commit removes usage from acl package.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
Move NodeInfo message definition to netmap package. Package bootstrap is
completely removed from the repository.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
Introduce netmap package to repository. Also as initial use, added container
storage rules message netmap.PlacementRule.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
There is a need to remove gogoproto usage from NeoFS API since this plugin
is not cross-language. This commit removes usage from NodeInfo message.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
After removing State service from the public API, SpreadMap message became
redundant, so it is deleted.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
Remove Bootstrap service with all related types from bootstrap package since it
was used to prototype NeoFS system.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
Move Query message definition to object package since it is only used there.
Package query is completely removed from the repository.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
Move Decimal message definition to accounting package since it is only used
there. Package decimal is completely removed from the repository.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
There is a need to remove gogoproto usage from NeoFS API since this plugin
is not cross-language. This commit removes usage from Decimal message.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
There is a need to remove gogoproto usage from NeoFS API since this plugin
is not cross-language. This commit removes usage from BalanceRequest
message.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
Some types in accounting package used to prototype the NeoFS system. With
the transition to a banking system using blockchain, these types have lost
their relevance, so this commit deletes them.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
Remove BalanceResponse field that carried the list of lock account since it
ceased to be externally controlled and is now managed by Smart Contract.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
Change the type of all fields for identifier of the container owner to
refs.OwnerID. This will allow you to follow a single format and not duplicate
its description.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
Define OwnerID message in refs package. In the future, this structure can be
ported into messages in place of the owner identifier field to maintain format
uniformity. Also, storing the identifier in a dedicated message will allow, if
necessary, to expand it with additional information without losing backward
compatibility within one version of the API.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
Change the type of all fields for the container identifier to refs.ContainerID.
This will allow to follow a single format and not duplicate its description.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
Define ContainerID message in refs package. In the future, this structure can be
ported into messages in place of the container identifier field to maintain
format uniformity. Also, storing the identifier in a dedicated message will
allow, if necessary, to expand it with additional information without losing
backward compatibility within one version of the API.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
In previous version of the format storage group information was stored in
completely in the dedicated header field. However, having a header field
instead of storing it in a payload is not justified, since it is used only
to check the presence in the object. Based on this, this commit defines a
message for marking the object as the custodian of information about the
storage group and changes the type of field StorageGroup to it. Information
about the storage group will be stored serialized in the payload of the
objects marked in this way
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
In previous version of the format storage group lifetime was measured in two
epoch times: NeoFS and Unix. Since unix is not processed in the system,
this commit narrows the time point of storage group expiration to the
system epoch number. The storagegroup.StorageGroup.Lifetime message has
therefore been deleted as no longer used.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
As mentioned in #32, there is a need to remove gogoproto usage from NeoFS API
since this plugin is not cross-language. This commit removes usage from
StorageGroup message and all related types
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
In the previous format, the object header was subdivided into system and
extended parts, which confused the purpose of these parts. In particular,
the extended header contains system fields. To clarify the non-intersection
of the mentioned parts of the object header, it was decided to rename System
to Main.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit replaces Token field from ExtendedHeader to IntegrityHeader for
assembling all verification data in one structure.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit replaces single Attribute field with the repeated list of
Attribute in ExtendedHeader message.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit replaces PayloadChecksum field from ExtendedHeader to
IntegrityHeader for assembling all verification data in one structure.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit moves the public key of the creator of the object to
IntegrityHeader to encapsulate the verification data in one message. Thus
field PublicKey of message Header has been moved to message IntegrityHeader
with the name CreatorKey. As a result, PublicKey message is deleted as no
longer used.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
Redirect field was introduced for the future, however, at the moment it is
not used anywhere. This commit removes field Redirect from ExtendedHeader
message. It can be added back later without losing API backward
compatibility.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
After updating the structure of SplitHeader and StorageGroup messages, the
Link header field is no longer needed. This commit removes the field and
message Link as no longer used.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
To encapsulate the complete information about the storage group in
StorageGroup message, this commit adds the missing group member list field.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
Field with object revision number was introduced for the future, however, at
the moment it is not used anywhere. This commit removes field Version from
SystemHeader message. It can be added back later without losing API
backward compatibility.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
In previous version of the format ExtendedHeader consisted of one field
Value, defined by oneof mechanism. Such a definition format give complete
freedom when composing an object header, however, it did not allow strictly
structuring the header format at the level of type syntax. Since the object
has a well-defined structure in the system, this commit replaces the
definition through oneof with a set of fields. As a consequence, storing a
set of extended headers of the new type in the general header became
redundant, so the repeated keyword was removed.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit replaces Transform message with SplitHeader in oneof definition
of Value field of Header message. The latter, unlike the first, carries
complete information about the generation of the object by splitting the
payload. As a result, the message is deleted as no longer used.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit defines SplitHeader message that encapsulates data about
spawning the object through a payload splitting. Message fields contain
information about the hierarchy in the split-chain as well as information
about the origin object.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit makes ObjectID field of refs.Address message to use dedicated
message for object identifier ObjectID.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>