Commit graph

105 commits

Author SHA1 Message Date
Stanislav Bogatyrev
c8054c5daa [#58] netmap: Simplify Placement Policy
Proposed protobuf format for Placement Policy simplifies direct editing in
visual editors and import/export from other formats like JSON.

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-09-01 21:15:09 +03:00
Stanislav Bogatyrev
e72dceebd3 [#62] Put NodeInfo public_key field first
To simplify decoding of NodeInfo structure inside netmap smart contract, the
first field, also used as a storage key inside contract, has to be of the fixed
length.

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-31 14:02:18 +03:00
Stanislav Bogatyrev
fc170f56bf [#57] Merge service and session packages
Merging session and service packages to increase clarity and reduce
cross-dependencies.

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-20 10:33:49 +03:00
Stanislav Bogatyrev
762c9762ef [#56] Fix typos and regenerate docs
Sorry =)

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-18 18:41:44 +03:00
Stanislav Bogatyrev
579a618f72 docs: Update docs with new token locations
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-18 18:31:36 +03:00
Stanislav Bogatyrev
b07c1c3173 Separate accounting service from it's types
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-18 15:04:15 +03:00
Stanislav Bogatyrev
13a80df882 Use common signature type
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-18 15:04:15 +03:00
Stanislav Bogatyrev
a78b8a1ea5 Move all service types to types.proto
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-18 15:04:15 +03:00
Stanislav Bogatyrev
1647242397 [#46] Rename session context fields
It should simplify reading.

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-18 15:04:15 +03:00
Stanislav Bogatyrev
4e908a17b1 [#50] Add version fields where it makes sense
Some pieces of data (container, object, etc) may be stored for a long time and
there will be a need in the future to understand which obscure format from the
past was used to create it.

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-17 12:12:30 +03:00
Stanislav Bogatyrev
7555e166b2 [#49] Minor reformat
- Trying to move enums to the package level
- Trying to keep all definitions in types.proto

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-17 12:12:16 +03:00
Stanislav Bogatyrev
f87d70ca23 [#46] Add per-service context to SessionToken
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-17 12:06:39 +03:00
Stanislav Bogatyrev
eb61f7cafd [#45] docs: Regenerate Markdown docs
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-13 22:57:00 +03:00
Stanislav Bogatyrev
a77480582d [#37] docs: Regenerate markdown docs
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-11 21:36:03 +03:00
Stanislav Bogatyrev
658bc45fb9 [#38] docs: update docs after object type changes
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-11 16:30:39 +03:00
Leonard Lyubich
35774d4ef7 [#40] service: Correct Token.Info.owner_id field description
Remove mention of an object from the session token field.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-11 11:50:36 +03:00
Leonard Lyubich
b088391294 [#40] service: Rename Token to SessionToken
Rename Token message to SessionToken to clarify its purpose.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-11 11:50:36 +03:00
Leonard Lyubich
fa7c269500 [#40] service: Change names of Token.Info.Verb enum
Add the prefix Object to the session verb values to abstract the token from
the object.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-11 11:50:36 +03:00
Leonard Lyubich
5809f0bfbf [#40] service: Add session token context
Replace object address field with the oneof-list of session contexts. Break
the connection of the session with the object. Extend the ability to open
sessions for other needs without losing backward compatibility.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-11 11:50:36 +03:00
Stanislav Bogatyrev
c65920d2ce [#32] docs: regenerate files
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-07 14:36:15 +03:00
Stanislav Bogatyrev
5fe4c2734e [#33] Remove unused headers
Remove MetaHeader and VerifyHeader from balance request as these fields are also
removed from all container related requests.

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-07 12:36:02 +03:00
Leonard Lyubich
96ddb868bc [#31] service: Change BearerTokenMsg.Info.ACLRules field type
It was originally planned to transport extended ACL table in binary form.
However, from time on, it was decided to abandon this approach in favor of
the declared message structure (acl.EACLTable). In this regard, this commit
changes the type and name of the binary BearerTokenMsg.Info.ACLRules field
to EACLTable.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 23:51:51 +03:00
Leonard Lyubich
05a885e142 object: Tidy up the format
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 23:45:50 +03:00
Leonard Lyubich
ad5126f53f session: Tidy up the format
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 23:45:50 +03:00
Leonard Lyubich
0ca83fcef6 service: Tidy up the format
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 23:45:50 +03:00
Leonard Lyubich
23f571f76f object: Remove response meta header
This commit removes ResponseMetaHeader from the repository since it is not
verifiable and its purpose is questionable. If needed, it can be added to
queries without losing compatibility with the API version.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 23:45:50 +03:00
Leonard Lyubich
3518fc42bd object: Replace Raw flag
In previous version of the format RequestMetaHeader, which is included in
all requests, contained the boolean flag Raw. However, this option was
processed only in object.Head and object.Get rpc. Therefore, this commit
strips the field from the request meta header and adds it to the mentioned
requests.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 23:45:50 +03:00
Leonard Lyubich
46fe7b93cd refs: Tidy up the format
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 23:45:50 +03:00
Leonard Lyubich
12dd5e07ba container: Tidy up the format
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 23:45:50 +03:00
Leonard Lyubich
fca07c84d6 acl: Tidy up the format
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 23:34:03 +03:00
Leonard Lyubich
031579a68d [#34] bootstrap: Move NodeInfo to netmap
Move NodeInfo message definition to netmap package. Package bootstrap is
completely removed from the repository.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 23:33:24 +03:00
Leonard Lyubich
f60273beb9 [#34] Add netmap package
Introduce netmap package to repository. Also as initial use, added container
storage rules message netmap.PlacementRule.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 23:32:46 +03:00
Leonard Lyubich
44ec19962a bootstrap: Replace options with attributes in NodeInfo
Rename Options to Attributes to be in sync with Objects and Nodes and Containers.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 23:31:14 +03:00
Leonard Lyubich
87e1d01307 [#34] bootstrap: Tidy up the format
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 23:31:07 +03:00
Leonard Lyubich
4caf9a7258 [#34] bootstrap: Remove no longer used SpreadMap
After removing State service from the public API, SpreadMap message became
redundant, so it is deleted.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 23:30:51 +03:00
Leonard Lyubich
abbf0f7893 [#30] state: Remove State service
Remove state package from the repository since State service is
not part of the public API.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 23:30:51 +03:00
Leonard Lyubich
5b410c6915 [#34] bootstrap: Remove Bootstrap service
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>
2020-08-06 23:30:30 +03:00
Leonard Lyubich
7c71813d22 [#34] bootstrap: Define node state enum in NodeInfo
Replaces Status field of NodeInfo with State field value of NodeInfo.State
enumeration.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 23:30:09 +03:00
Leonard Lyubich
c88d1fdae3 query: Move Query to object
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>
2020-08-06 23:11:16 +03:00
Leonard Lyubich
d308f91872 [#33] accounting: Tidy up the format
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 23:08:27 +03:00
Leonard Lyubich
e6fce062df [#33] decimal: Move Decimal to accounting
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>
2020-08-06 23:08:01 +03:00
Leonard Lyubich
54319feb4a [#33] accounting: Remove no longer used types
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>
2020-08-06 23:02:54 +03:00
Leonard Lyubich
9454d1adad [#33] accounting: Remove LockAccounts field from BalanceResponse
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>
2020-08-06 23:01:42 +03:00
Leonard Lyubich
40420f3ab0 [#31] refs: Use OwnerID message in all services
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>
2020-08-06 22:00:01 +03:00
Leonard Lyubich
9bd4934373 [#31] refs: Define OwnerID message
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>
2020-08-06 22:00:01 +03:00
Leonard Lyubich
fccd753a5d [#31] refs: Use ContainerID message in all services
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>
2020-08-06 22:00:01 +03:00
Leonard Lyubich
2f5f6f8fde [#31] refs: Define ContainerID message
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>
2020-08-06 22:00:01 +03:00
Leonard Lyubich
67ecea7507 [#28] object: Move storage group information
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>
2020-08-06 22:00:01 +03:00
Leonard Lyubich
d349faa602 [#28] storagegroup: Rewrite field comments
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 22:00:01 +03:00
Leonard Lyubich
487b84e614 [#28] storagegroup: Measure lifetime in NeoFS epochs
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>
2020-08-06 22:00:01 +03:00