diff --git a/docs/accounting.md b/docs/accounting.md deleted file mode 100644 index bcae1366..00000000 --- a/docs/accounting.md +++ /dev/null @@ -1,491 +0,0 @@ -# Protocol Documentation - - -## Table of Contents - -- [accounting/service.proto](#accounting/service.proto) - - Services - - [Accounting](#accounting.Accounting) - - - Messages - - [BalanceRequest](#accounting.BalanceRequest) - - [BalanceResponse](#accounting.BalanceResponse) - - -- [accounting/types.proto](#accounting/types.proto) - - - Messages - - [Account](#accounting.Account) - - [Balances](#accounting.Balances) - - [ContainerCreateTarget](#accounting.ContainerCreateTarget) - - [Lifetime](#accounting.Lifetime) - - [LockTarget](#accounting.LockTarget) - - [PayIO](#accounting.PayIO) - - [Settlement](#accounting.Settlement) - - [Settlement.Container](#accounting.Settlement.Container) - - [Settlement.Receiver](#accounting.Settlement.Receiver) - - [Settlement.Tx](#accounting.Settlement.Tx) - - [Tx](#accounting.Tx) - - [WithdrawTarget](#accounting.WithdrawTarget) - - -- [accounting/withdraw.proto](#accounting/withdraw.proto) - - Services - - [Withdraw](#accounting.Withdraw) - - - Messages - - [DeleteRequest](#accounting.DeleteRequest) - - [DeleteResponse](#accounting.DeleteResponse) - - [GetRequest](#accounting.GetRequest) - - [GetResponse](#accounting.GetResponse) - - [Item](#accounting.Item) - - [ListRequest](#accounting.ListRequest) - - [ListResponse](#accounting.ListResponse) - - [PutRequest](#accounting.PutRequest) - - [PutResponse](#accounting.PutResponse) - - -- [Scalar Value Types](#scalar-value-types) - - - - -

Top

- -## accounting/service.proto - - - - - - -### Service "accounting.Accounting" -Accounting is a service that provides access for accounting balance -information - -``` -rpc Balance(BalanceRequest) returns (BalanceResponse); - -``` - -#### Method Balance - -Balance returns current balance status of the NeoFS user - -| Name | Input | Output | -| ---- | ----- | ------ | -| Balance | [BalanceRequest](#accounting.BalanceRequest) | [BalanceResponse](#accounting.BalanceResponse) | - - - - - -### Message BalanceRequest - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| OwnerID | [bytes](#bytes) | | OwnerID is a wallet address | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - -### Message BalanceResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Balance | [decimal.Decimal](#decimal.Decimal) | | Balance contains current account balance state | -| LockAccounts | [Account](#accounting.Account) | repeated | LockAccounts contains information about locked funds. Locked funds appear when user pays for storage or withdraw assets. | - - - - - - - - -

Top

- -## accounting/types.proto - - - - - - - -### Message Account - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| OwnerID | [bytes](#bytes) | | OwnerID is a wallet address | -| Address | [string](#string) | | Address is identifier of accounting record | -| ParentAddress | [string](#string) | | ParentAddress is identifier of parent accounting record | -| ActiveFunds | [decimal.Decimal](#decimal.Decimal) | | ActiveFunds is amount of active (non locked) funds for account | -| Lifetime | [Lifetime](#accounting.Lifetime) | | Lifetime is time until account is valid (used for lock accounts) | -| LockTarget | [LockTarget](#accounting.LockTarget) | | LockTarget is the purpose of lock funds (it might be withdraw or payment for storage) | -| LockAccounts | [Account](#accounting.Account) | repeated | LockAccounts contains child accounts with locked funds | - - - - -### Message Balances - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Accounts | [Account](#accounting.Account) | repeated | Accounts contains multiple account snapshots | - - - - -### Message ContainerCreateTarget - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| CID | [bytes](#bytes) | | CID is container identifier | - - - - -### Message Lifetime - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| unit | [Lifetime.Unit](#accounting.Lifetime.Unit) | | Unit describes how lifetime is measured in account | -| Value | [int64](#int64) | | Value describes how long lifetime will be valid | - - - - -### Message LockTarget -LockTarget must be one of two options - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| WithdrawTarget | [WithdrawTarget](#accounting.WithdrawTarget) | | WithdrawTarget used when user requested withdraw | -| ContainerCreateTarget | [ContainerCreateTarget](#accounting.ContainerCreateTarget) | | ContainerCreateTarget used when user requested creation of container | - - - - -### Message PayIO - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| BlockID | [uint64](#uint64) | | BlockID contains id of the NEO block where withdraw or deposit call was invoked | -| Transactions | [Tx](#accounting.Tx) | repeated | Transactions contains all transactions that founded in block and used for PayIO | - - - - -### Message Settlement - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Epoch | [uint64](#uint64) | | Epoch contains an epoch when settlement was accepted | -| Transactions | [Settlement.Tx](#accounting.Settlement.Tx) | repeated | Transactions is a set of transactions | - - - - -### Message Settlement.Container - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| CID | [bytes](#bytes) | | CID is container identifier | -| SGIDs | [bytes](#bytes) | repeated | SGIDs is a set of storage groups that successfully passed the audit | - - - - -### Message Settlement.Receiver - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| To | [string](#string) | | To is the address of funds recipient | -| Amount | [decimal.Decimal](#decimal.Decimal) | | Amount is the amount of funds that will be sent | - - - - -### Message Settlement.Tx - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| From | [string](#string) | | From is the address of the sender of funds | -| Container | [Settlement.Container](#accounting.Settlement.Container) | | Container that successfully had passed the audit | -| Receivers | [Settlement.Receiver](#accounting.Settlement.Receiver) | repeated | Receivers is a set of addresses of funds recipients | - - - - -### Message Tx - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| type | [Tx.Type](#accounting.Tx.Type) | | Type describes target of transaction | -| From | [string](#string) | | From describes sender of funds | -| To | [string](#string) | | To describes receiver of funds | -| Amount | [decimal.Decimal](#decimal.Decimal) | | Amount describes amount of funds | -| PublicKeys | [bytes](#bytes) | | PublicKeys contains public key of sender | - - - - -### Message WithdrawTarget - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Cheque | [string](#string) | | Cheque is a string representation of cheque id | - - - - - - -### Lifetime.Unit -Unit can be Unlimited, based on NeoFS epoch or Neo block - -| Name | Number | Description | -| ---- | ------ | ----------- | -| Unlimited | 0 | | -| NeoFSEpoch | 1 | | -| NeoBlock | 2 | | - - - - - -### Tx.Type -Type can be withdrawal, payIO or inner - -| Name | Number | Description | -| ---- | ------ | ----------- | -| Unknown | 0 | | -| Withdraw | 1 | | -| PayIO | 2 | | -| Inner | 3 | | - - - - - - - -

Top

- -## accounting/withdraw.proto - - - - - - -### Service "accounting.Withdraw" -Withdraw is a service that provides withdraw assets operations from the NeoFS - -``` -rpc Get(GetRequest) returns (GetResponse); -rpc Put(PutRequest) returns (PutResponse); -rpc List(ListRequest) returns (ListResponse); -rpc Delete(DeleteRequest) returns (DeleteResponse); - -``` - -#### Method Get - -Get returns cheque if it was signed by inner ring nodes - -| Name | Input | Output | -| ---- | ----- | ------ | -| Get | [GetRequest](#accounting.GetRequest) | [GetResponse](#accounting.GetResponse) | -#### Method Put - -Put ask inner ring nodes to sign a cheque for withdraw invoke - -| Name | Input | Output | -| ---- | ----- | ------ | -| Put | [PutRequest](#accounting.PutRequest) | [PutResponse](#accounting.PutResponse) | -#### Method List - -List shows all user's checks - -| Name | Input | Output | -| ---- | ----- | ------ | -| List | [ListRequest](#accounting.ListRequest) | [ListResponse](#accounting.ListResponse) | -#### Method Delete - -Delete allows user to remove unused cheque - -| Name | Input | Output | -| ---- | ----- | ------ | -| Delete | [DeleteRequest](#accounting.DeleteRequest) | [DeleteResponse](#accounting.DeleteResponse) | - - - - - -### Message DeleteRequest - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| ID | [bytes](#bytes) | | ID is cheque identifier | -| OwnerID | [bytes](#bytes) | | OwnerID is a wallet address | -| MessageID | [bytes](#bytes) | | MessageID is a nonce for uniq request (UUIDv4) | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - -### Message DeleteResponse -DeleteResponse is empty - - - - - -### Message GetRequest - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| ID | [bytes](#bytes) | | ID is cheque identifier | -| OwnerID | [bytes](#bytes) | | OwnerID is a wallet address | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - -### Message GetResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Withdraw | [Item](#accounting.Item) | | Withdraw is cheque with meta information | - - - - -### Message Item - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| ID | [bytes](#bytes) | | ID is a cheque identifier | -| OwnerID | [bytes](#bytes) | | OwnerID is a wallet address | -| Amount | [decimal.Decimal](#decimal.Decimal) | | Amount of funds | -| Height | [uint64](#uint64) | | Height is the neo blockchain height until the cheque is valid | -| Payload | [bytes](#bytes) | | Payload contains cheque representation in bytes | - - - - -### Message ListRequest - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| OwnerID | [bytes](#bytes) | | OwnerID is a wallet address | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - -### Message ListResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Items | [Item](#accounting.Item) | repeated | Items is a set of cheques with meta information | - - - - -### Message PutRequest - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| OwnerID | [bytes](#bytes) | | OwnerID is a wallet address | -| Amount | [decimal.Decimal](#decimal.Decimal) | | Amount of funds | -| Height | [uint64](#uint64) | | Height is the neo blockchain height until the cheque is valid | -| MessageID | [bytes](#bytes) | | MessageID is a nonce for uniq request (UUIDv4) | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - -### Message PutResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| ID | [bytes](#bytes) | | ID is cheque identifier | - - - - - - - -## Scalar Value Types - -| .proto Type | Notes | C++ Type | Java Type | Python Type | -| ----------- | ----- | -------- | --------- | ----------- | -| double | | double | double | float | -| float | | float | float | float | -| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | -| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | -| uint32 | Uses variable-length encoding. | uint32 | int | int/long | -| uint64 | Uses variable-length encoding. | uint64 | long | int/long | -| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | -| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | -| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | -| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | -| sfixed32 | Always four bytes. | int32 | int | int | -| sfixed64 | Always eight bytes. | int64 | long | int/long | -| bool | | bool | boolean | boolean | -| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | -| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | - diff --git a/docs/acl.md b/docs/acl.md deleted file mode 100644 index f63758b1..00000000 --- a/docs/acl.md +++ /dev/null @@ -1,176 +0,0 @@ -# Protocol Documentation - - -## Table of Contents - -- [acl/types.proto](#acl/types.proto) - - - Messages - - [EACLRecord](#acl.EACLRecord) - - [EACLRecord.FilterInfo](#acl.EACLRecord.FilterInfo) - - [EACLRecord.TargetInfo](#acl.EACLRecord.TargetInfo) - - [EACLTable](#acl.EACLTable) - - -- [Scalar Value Types](#scalar-value-types) - - - - -

Top

- -## acl/types.proto - - - - - - - -### Message EACLRecord -EACLRecord groups information about extended ACL rule. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| operation | [EACLRecord.Operation](#acl.EACLRecord.Operation) | | Operation carries type of operation. | -| action | [EACLRecord.Action](#acl.EACLRecord.Action) | | Action carries ACL target action. | -| Filters | [EACLRecord.FilterInfo](#acl.EACLRecord.FilterInfo) | repeated | Filters carries set of filters. | -| Targets | [EACLRecord.TargetInfo](#acl.EACLRecord.TargetInfo) | repeated | Targets carries information about extended ACL target list. | - - - - -### Message EACLRecord.FilterInfo -FilterInfo groups information about filter. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| header | [EACLRecord.FilterInfo.Header](#acl.EACLRecord.FilterInfo.Header) | | Header carries type of header. | -| matchType | [EACLRecord.FilterInfo.MatchType](#acl.EACLRecord.FilterInfo.MatchType) | | MatchType carries type of match. | -| HeaderName | [string](#string) | | HeaderName carries name of filtering header. | -| HeaderVal | [string](#string) | | HeaderVal carries value of filtering header. | - - - - -### Message EACLRecord.TargetInfo -TargetInfo groups information about extended ACL target. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Target | [Target](#acl.Target) | | Target carries target of ACL rule. | -| KeyList | [bytes](#bytes) | repeated | KeyList carries public keys of ACL target. | - - - - -### Message EACLTable -EACLRecord carries the information about extended ACL rules. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Records | [EACLRecord](#acl.EACLRecord) | repeated | Records carries list of extended ACL rule records. | - - - - - - -### EACLRecord.Action -Action is an enumeration of EACL actions. - -| Name | Number | Description | -| ---- | ------ | ----------- | -| ActionUnknown | 0 | | -| Allow | 1 | | -| Deny | 2 | | - - - - - -### EACLRecord.FilterInfo.Header -Header is an enumeration of filtering header types. - -| Name | Number | Description | -| ---- | ------ | ----------- | -| HeaderUnknown | 0 | | -| Request | 1 | | -| ObjectSystem | 2 | | -| ObjectUser | 3 | | - - - - - -### EACLRecord.FilterInfo.MatchType -MatchType is an enumeration of match types. - -| Name | Number | Description | -| ---- | ------ | ----------- | -| MatchUnknown | 0 | | -| StringEqual | 1 | | -| StringNotEqual | 2 | | - - - - - -### EACLRecord.Operation -Operation is an enumeration of operation types. - -| Name | Number | Description | -| ---- | ------ | ----------- | -| OPERATION_UNKNOWN | 0 | | -| GET | 1 | | -| HEAD | 2 | | -| PUT | 3 | | -| DELETE | 4 | | -| SEARCH | 5 | | -| GETRANGE | 6 | | -| GETRANGEHASH | 7 | | - - - - - -### Target -Target of the access control rule in access control list. - -| Name | Number | Description | -| ---- | ------ | ----------- | -| Unknown | 0 | Unknown target, default value. | -| User | 1 | User target rule is applied if sender is the owner of the container. | -| System | 2 | System target rule is applied if sender is the storage node within the container or inner ring node. | -| Others | 3 | Others target rule is applied if sender is not user or system target. | -| PubKey | 4 | PubKey target rule is applied if sender has public key provided in extended ACL. | - - - - - - -## Scalar Value Types - -| .proto Type | Notes | C++ Type | Java Type | Python Type | -| ----------- | ----- | -------- | --------- | ----------- | -| double | | double | double | float | -| float | | float | float | float | -| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | -| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | -| uint32 | Uses variable-length encoding. | uint32 | int | int/long | -| uint64 | Uses variable-length encoding. | uint64 | long | int/long | -| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | -| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | -| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | -| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | -| sfixed32 | Always four bytes. | int32 | int | int | -| sfixed64 | Always eight bytes. | int64 | long | int/long | -| bool | | bool | boolean | boolean | -| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | -| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | - diff --git a/docs/bootstrap.md b/docs/bootstrap.md deleted file mode 100644 index 80aa1091..00000000 --- a/docs/bootstrap.md +++ /dev/null @@ -1,147 +0,0 @@ -# Protocol Documentation - - -## Table of Contents - -- [bootstrap/service.proto](#bootstrap/service.proto) - - Services - - [Bootstrap](#bootstrap.Bootstrap) - - - Messages - - [Request](#bootstrap.Request) - - -- [bootstrap/types.proto](#bootstrap/types.proto) - - - Messages - - [NodeInfo](#bootstrap.NodeInfo) - - [SpreadMap](#bootstrap.SpreadMap) - - -- [Scalar Value Types](#scalar-value-types) - - - - -

Top

- -## bootstrap/service.proto - - - - - - -### Service "bootstrap.Bootstrap" -Bootstrap service allows neofs-node to connect to the network. Node should -perform at least one bootstrap request in the epoch to stay in the network -for the next epoch. - -``` -rpc Process(Request) returns (SpreadMap); - -``` - -#### Method Process - -Process is method that allows to register node in the network and receive actual netmap - -| Name | Input | Output | -| ---- | ----- | ------ | -| Process | [Request](#bootstrap.Request) | [SpreadMap](#bootstrap.SpreadMap) | - - - - - -### Message Request - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| type | [int32](#int32) | | Type is NodeType, can be InnerRingNode (type=1) or StorageNode (type=2) | -| info | [NodeInfo](#bootstrap.NodeInfo) | | Info contains information about node | -| state | [Request.State](#bootstrap.Request.State) | | State contains node status | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - - - -### Request.State -Node state - -| Name | Number | Description | -| ---- | ------ | ----------- | -| Unknown | 0 | used by default | -| Online | 1 | used to inform that node online | -| Offline | 2 | used to inform that node offline | - - - - - - - -

Top

- -## bootstrap/types.proto - - - - - - - -### Message NodeInfo - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Address | [string](#string) | | Address is a node [multi-address](https://github.com/multiformats/multiaddr) | -| PubKey | [bytes](#bytes) | | PubKey is a compressed public key representation in bytes | -| Options | [string](#string) | repeated | Options is set of node optional information, such as storage capacity, node location, price and etc | -| Status | [uint64](#uint64) | | Status is bitmap status of the node | - - - - -### Message SpreadMap - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Epoch | [uint64](#uint64) | | Epoch is current epoch for netmap | -| NetMap | [NodeInfo](#bootstrap.NodeInfo) | repeated | NetMap is a set of NodeInfos | - - - - - - - -## Scalar Value Types - -| .proto Type | Notes | C++ Type | Java Type | Python Type | -| ----------- | ----- | -------- | --------- | ----------- | -| double | | double | double | float | -| float | | float | float | float | -| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | -| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | -| uint32 | Uses variable-length encoding. | uint32 | int | int/long | -| uint64 | Uses variable-length encoding. | uint64 | long | int/long | -| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | -| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | -| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | -| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | -| sfixed32 | Always four bytes. | int32 | int | int | -| sfixed64 | Always eight bytes. | int64 | long | int/long | -| bool | | bool | boolean | boolean | -| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | -| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | - diff --git a/docs/container.md b/docs/container.md deleted file mode 100644 index fd89acd8..00000000 --- a/docs/container.md +++ /dev/null @@ -1,326 +0,0 @@ -# Protocol Documentation - - -## Table of Contents - -- [container/service.proto](#container/service.proto) - - Services - - [Service](#container.Service) - - - Messages - - [DeleteRequest](#container.DeleteRequest) - - [DeleteResponse](#container.DeleteResponse) - - [ExtendedACLKey](#container.ExtendedACLKey) - - [ExtendedACLValue](#container.ExtendedACLValue) - - [GetExtendedACLRequest](#container.GetExtendedACLRequest) - - [GetExtendedACLResponse](#container.GetExtendedACLResponse) - - [GetRequest](#container.GetRequest) - - [GetResponse](#container.GetResponse) - - [ListRequest](#container.ListRequest) - - [ListResponse](#container.ListResponse) - - [PutRequest](#container.PutRequest) - - [PutResponse](#container.PutResponse) - - [SetExtendedACLRequest](#container.SetExtendedACLRequest) - - [SetExtendedACLResponse](#container.SetExtendedACLResponse) - - -- [container/types.proto](#container/types.proto) - - - Messages - - [Container](#container.Container) - - -- [Scalar Value Types](#scalar-value-types) - - - - -

Top

- -## container/service.proto - - - - - - -### Service "container.Service" -Container service provides API for manipulating with the container. - -``` -rpc Put(PutRequest) returns (PutResponse); -rpc Delete(DeleteRequest) returns (DeleteResponse); -rpc Get(GetRequest) returns (GetResponse); -rpc List(ListRequest) returns (ListResponse); -rpc SetExtendedACL(SetExtendedACLRequest) returns (SetExtendedACLResponse); -rpc GetExtendedACL(GetExtendedACLRequest) returns (GetExtendedACLResponse); - -``` - -#### Method Put - -Put request proposes container to the inner ring nodes. They will -accept new container if user has enough deposit. All containers -are accepted by the consensus, therefore it is asynchronous process. - -| Name | Input | Output | -| ---- | ----- | ------ | -| Put | [PutRequest](#container.PutRequest) | [PutResponse](#container.PutResponse) | -#### Method Delete - -Delete container removes it from the inner ring container storage. It -also asynchronous process done by consensus. - -| Name | Input | Output | -| ---- | ----- | ------ | -| Delete | [DeleteRequest](#container.DeleteRequest) | [DeleteResponse](#container.DeleteResponse) | -#### Method Get - -Get container returns container instance - -| Name | Input | Output | -| ---- | ----- | ------ | -| Get | [GetRequest](#container.GetRequest) | [GetResponse](#container.GetResponse) | -#### Method List - -List returns all user's containers - -| Name | Input | Output | -| ---- | ----- | ------ | -| List | [ListRequest](#container.ListRequest) | [ListResponse](#container.ListResponse) | -#### Method SetExtendedACL - -SetExtendedACL changes extended ACL rules of the container - -| Name | Input | Output | -| ---- | ----- | ------ | -| SetExtendedACL | [SetExtendedACLRequest](#container.SetExtendedACLRequest) | [SetExtendedACLResponse](#container.SetExtendedACLResponse) | -#### Method GetExtendedACL - -GetExtendedACL returns extended ACL rules of the container - -| Name | Input | Output | -| ---- | ----- | ------ | -| GetExtendedACL | [GetExtendedACLRequest](#container.GetExtendedACLRequest) | [GetExtendedACLResponse](#container.GetExtendedACLResponse) | - - - - - -### Message DeleteRequest - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| CID | [bytes](#bytes) | | CID (container id) is a SHA256 hash of the container structure | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - -### Message DeleteResponse -DeleteResponse is empty because delete operation is asynchronous and done -via consensus in inner ring nodes - - - - - -### Message ExtendedACLKey - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| ID | [bytes](#bytes) | | ID (container id) is a SHA256 hash of the container structure | - - - - -### Message ExtendedACLValue - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| EACL | [bytes](#bytes) | | EACL carries binary representation of the table of extended ACL rules | -| Signature | [bytes](#bytes) | | Signature carries EACL field signature | - - - - -### Message GetExtendedACLRequest - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Key | [ExtendedACLKey](#container.ExtendedACLKey) | | Key carries key to extended ACL information | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - -### Message GetExtendedACLResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| ACL | [ExtendedACLValue](#container.ExtendedACLValue) | | ACL carries extended ACL information | - - - - -### Message GetRequest - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| CID | [bytes](#bytes) | | CID (container id) is a SHA256 hash of the container structure | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - -### Message GetResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Container | [Container](#container.Container) | | Container is a structure that contains placement rules and owner id | - - - - -### Message ListRequest - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| OwnerID | [bytes](#bytes) | | OwnerID is a wallet address | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - -### Message ListResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| CID | [bytes](#bytes) | repeated | CID (container id) is list of SHA256 hashes of the container structures | - - - - -### Message PutRequest - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| MessageID | [bytes](#bytes) | | MessageID is a nonce for uniq container id calculation | -| Capacity | [uint64](#uint64) | | Capacity defines amount of data that can be stored in the container (doesn't used for now). | -| OwnerID | [bytes](#bytes) | | OwnerID is a wallet address | -| rules | [netmap.PlacementRule](#netmap.PlacementRule) | | Rules define storage policy for the object inside the container. | -| BasicACL | [uint32](#uint32) | | BasicACL of the container. | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - -### Message PutResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| CID | [bytes](#bytes) | | CID (container id) is a SHA256 hash of the container structure | - - - - -### Message SetExtendedACLRequest - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Key | [ExtendedACLKey](#container.ExtendedACLKey) | | Key carries key to extended ACL information | -| Value | [ExtendedACLValue](#container.ExtendedACLValue) | | Value carries extended ACL information | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - -### Message SetExtendedACLResponse - - - - - - - - - - -

Top

- -## container/types.proto - - - - - - - -### Message Container -The Container service definition. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| OwnerID | [bytes](#bytes) | | OwnerID is a wallet address. | -| Salt | [bytes](#bytes) | | Salt is a nonce for unique container id calculation. | -| Capacity | [uint64](#uint64) | | Capacity defines amount of data that can be stored in the container (doesn't used for now). | -| Rules | [netmap.PlacementRule](#netmap.PlacementRule) | | Rules define storage policy for the object inside the container. | -| BasicACL | [uint32](#uint32) | | BasicACL with access control rules for owner, system, others and permission bits for bearer token and extended ACL. | - - - - - - - -## Scalar Value Types - -| .proto Type | Notes | C++ Type | Java Type | Python Type | -| ----------- | ----- | -------- | --------- | ----------- | -| double | | double | double | float | -| float | | float | float | float | -| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | -| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | -| uint32 | Uses variable-length encoding. | uint32 | int | int/long | -| uint64 | Uses variable-length encoding. | uint64 | long | int/long | -| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | -| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | -| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | -| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | -| sfixed32 | Always four bytes. | int32 | int | int | -| sfixed64 | Always eight bytes. | int64 | long | int/long | -| bool | | bool | boolean | boolean | -| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | -| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | - diff --git a/docs/decimal.md b/docs/decimal.md deleted file mode 100644 index 62acb863..00000000 --- a/docs/decimal.md +++ /dev/null @@ -1,61 +0,0 @@ -# Protocol Documentation - - -## Table of Contents - -- [decimal/decimal.proto](#decimal/decimal.proto) - - - Messages - - [Decimal](#decimal.Decimal) - - -- [Scalar Value Types](#scalar-value-types) - - - - -

Top

- -## decimal/decimal.proto - - - - - - - -### Message Decimal -Decimal is a structure used for representation of assets amount - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Value | [int64](#int64) | | Value is value number | -| Precision | [uint32](#uint32) | | Precision is precision number | - - - - - - - -## Scalar Value Types - -| .proto Type | Notes | C++ Type | Java Type | Python Type | -| ----------- | ----- | -------- | --------- | ----------- | -| double | | double | double | float | -| float | | float | float | float | -| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | -| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | -| uint32 | Uses variable-length encoding. | uint32 | int | int/long | -| uint64 | Uses variable-length encoding. | uint64 | long | int/long | -| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | -| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | -| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | -| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | -| sfixed32 | Always four bytes. | int32 | int | int | -| sfixed64 | Always eight bytes. | int64 | long | int/long | -| bool | | bool | boolean | boolean | -| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | -| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | - diff --git a/docs/object.md b/docs/object.md deleted file mode 100644 index 27e4bcf0..00000000 --- a/docs/object.md +++ /dev/null @@ -1,545 +0,0 @@ -# Protocol Documentation - - -## Table of Contents - -- [object/service.proto](#object/service.proto) - - Services - - [Service](#object.Service) - - - Messages - - [DeleteRequest](#object.DeleteRequest) - - [DeleteResponse](#object.DeleteResponse) - - [GetRangeHashRequest](#object.GetRangeHashRequest) - - [GetRangeHashResponse](#object.GetRangeHashResponse) - - [GetRangeRequest](#object.GetRangeRequest) - - [GetRangeResponse](#object.GetRangeResponse) - - [GetRequest](#object.GetRequest) - - [GetResponse](#object.GetResponse) - - [HeadRequest](#object.HeadRequest) - - [HeadResponse](#object.HeadResponse) - - [PutRequest](#object.PutRequest) - - [PutRequest.PutHeader](#object.PutRequest.PutHeader) - - [PutResponse](#object.PutResponse) - - [SearchRequest](#object.SearchRequest) - - [SearchResponse](#object.SearchResponse) - - -- [object/types.proto](#object/types.proto) - - - Messages - - [CreationPoint](#object.CreationPoint) - - [Header](#object.Header) - - [IntegrityHeader](#object.IntegrityHeader) - - [Link](#object.Link) - - [Object](#object.Object) - - [PublicKey](#object.PublicKey) - - [Range](#object.Range) - - [SystemHeader](#object.SystemHeader) - - [Tombstone](#object.Tombstone) - - [Transform](#object.Transform) - - [UserHeader](#object.UserHeader) - - -- [Scalar Value Types](#scalar-value-types) - - - - -

Top

- -## object/service.proto - - - - - - -### Service "object.Service" -Object service provides API for manipulating with the object. - -``` -rpc Get(GetRequest) returns (stream GetResponse); -rpc Put(stream PutRequest) returns (PutResponse); -rpc Delete(DeleteRequest) returns (DeleteResponse); -rpc Head(HeadRequest) returns (HeadResponse); -rpc Search(SearchRequest) returns (stream SearchResponse); -rpc GetRange(GetRangeRequest) returns (stream GetRangeResponse); -rpc GetRangeHash(GetRangeHashRequest) returns (GetRangeHashResponse); - -``` - -#### Method Get - -Get the object from container. Response uses gRPC stream. First response -message carry object of requested address. Chunk messages are parts of -the object's payload if it is needed. All messages except first carry -chunks. Requested object can be restored by concatenation of object -message payload and all chunks keeping receiving order. - -| Name | Input | Output | -| ---- | ----- | ------ | -| Get | [GetRequest](#object.GetRequest) | [GetResponse](#object.GetResponse) | -#### Method Put - -Put the object into container. Request uses gRPC stream. First message -SHOULD BE type of PutHeader. Container id and Owner id of object SHOULD -BE set. Session token SHOULD BE obtained before put operation (see -session package). Chunk messages considered by server as part of object -payload. All messages except first SHOULD BE chunks. Chunk messages -SHOULD BE sent in direct order of fragmentation. - -| Name | Input | Output | -| ---- | ----- | ------ | -| Put | [PutRequest](#object.PutRequest) | [PutResponse](#object.PutResponse) | -#### Method Delete - -Delete the object from a container - -| Name | Input | Output | -| ---- | ----- | ------ | -| Delete | [DeleteRequest](#object.DeleteRequest) | [DeleteResponse](#object.DeleteResponse) | -#### Method Head - -Head returns the object without data payload. Object in the -response has system header only. If full headers flag is set, extended -headers are also present. - -| Name | Input | Output | -| ---- | ----- | ------ | -| Head | [HeadRequest](#object.HeadRequest) | [HeadResponse](#object.HeadResponse) | -#### Method Search - -Search objects in container. Version of query language format SHOULD BE -set to 1. Search query represented in serialized format (see query -package). - -| Name | Input | Output | -| ---- | ----- | ------ | -| Search | [SearchRequest](#object.SearchRequest) | [SearchResponse](#object.SearchResponse) | -#### Method GetRange - -GetRange of data payload. Range is a pair (offset, length). -Requested range can be restored by concatenation of all chunks -keeping receiving order. - -| Name | Input | Output | -| ---- | ----- | ------ | -| GetRange | [GetRangeRequest](#object.GetRangeRequest) | [GetRangeResponse](#object.GetRangeResponse) | -#### Method GetRangeHash - -GetRangeHash returns homomorphic hash of object payload range after XOR -operation. Ranges are set of pairs (offset, length). Hashes order in -response corresponds to ranges order in request. Homomorphic hash is -calculated for XORed data. - -| Name | Input | Output | -| ---- | ----- | ------ | -| GetRangeHash | [GetRangeHashRequest](#object.GetRangeHashRequest) | [GetRangeHashResponse](#object.GetRangeHashResponse) | - - - - - -### Message DeleteRequest - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Address | [refs.Address](#refs.Address) | | Address of object (container id + object id) | -| OwnerID | [bytes](#bytes) | | OwnerID is a wallet address | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - -### Message DeleteResponse -DeleteResponse is empty because we cannot guarantee permanent object removal -in distributed system. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Meta | [service.ResponseMetaHeader](#service.ResponseMetaHeader) | | ResponseMetaHeader contains meta information based on request processing by server (should be embedded into message) | - - - - -### Message GetRangeHashRequest - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Address | [refs.Address](#refs.Address) | | Address of object (container id + object id) | -| Ranges | [Range](#object.Range) | repeated | Ranges of object's payload to calculate homomorphic hash | -| Salt | [bytes](#bytes) | | Salt is used to XOR object's payload ranges before hashing, it can be nil | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - -### Message GetRangeHashResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Hashes | [bytes](#bytes) | repeated | Hashes is a homomorphic hashes of all ranges | -| Meta | [service.ResponseMetaHeader](#service.ResponseMetaHeader) | | ResponseMetaHeader contains meta information based on request processing by server (should be embedded into message) | - - - - -### Message GetRangeRequest - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Address | [refs.Address](#refs.Address) | | Address of object (container id + object id) | -| Range | [Range](#object.Range) | | Range of object's payload to return | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - -### Message GetRangeResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Fragment | [bytes](#bytes) | | Fragment of object's payload | -| Meta | [service.ResponseMetaHeader](#service.ResponseMetaHeader) | | ResponseMetaHeader contains meta information based on request processing by server (should be embedded into message) | - - - - -### Message GetRequest - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Address | [refs.Address](#refs.Address) | | Address of object (container id + object id) | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - -### Message GetResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| object | [Object](#object.Object) | | Object header and some payload | -| Chunk | [bytes](#bytes) | | Chunk of remaining payload | -| Meta | [service.ResponseMetaHeader](#service.ResponseMetaHeader) | | ResponseMetaHeader contains meta information based on request processing by server (should be embedded into message) | - - - - -### Message HeadRequest - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Address | [refs.Address](#refs.Address) | | Address of object (container id + object id) | -| FullHeaders | [bool](#bool) | | FullHeaders can be set true for extended headers in the object | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - -### Message HeadResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Object | [Object](#object.Object) | | Object without payload | -| Meta | [service.ResponseMetaHeader](#service.ResponseMetaHeader) | | ResponseMetaHeader contains meta information based on request processing by server (should be embedded into message) | - - - - -### Message PutRequest - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Header | [PutRequest.PutHeader](#object.PutRequest.PutHeader) | | Header should be the first message in the stream | -| Chunk | [bytes](#bytes) | | Chunk should be a remaining message in stream should be chunks | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - -### Message PutRequest.PutHeader - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Object | [Object](#object.Object) | | Object with at least container id and owner id fields | -| CopiesNumber | [uint32](#uint32) | | Number of the object copies to store within the RPC call (zero is processed according to the placement rules) | - - - - -### Message PutResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Address | [refs.Address](#refs.Address) | | Address of object (container id + object id) | -| Meta | [service.ResponseMetaHeader](#service.ResponseMetaHeader) | | ResponseMetaHeader contains meta information based on request processing by server (should be embedded into message) | - - - - -### Message SearchRequest - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| ContainerID | [bytes](#bytes) | | ContainerID for searching the object | -| Query | [bytes](#bytes) | | Query in the binary serialized format | -| QueryVersion | [uint32](#uint32) | | QueryVersion is a version of search query format | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - -### Message SearchResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Addresses | [refs.Address](#refs.Address) | repeated | Addresses of found objects | -| Meta | [service.ResponseMetaHeader](#service.ResponseMetaHeader) | | ResponseMetaHeader contains meta information based on request processing by server (should be embedded into message) | - - - - - - - - -

Top

- -## object/types.proto - - - - - - - -### Message CreationPoint - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| UnixTime | [int64](#int64) | | UnixTime is a date of creation in unixtime format | -| Epoch | [uint64](#uint64) | | Epoch is a date of creation in NeoFS epochs | - - - - -### Message Header - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Link | [Link](#object.Link) | | Link to other objects | -| Redirect | [refs.Address](#refs.Address) | | Redirect not used yet | -| UserHeader | [UserHeader](#object.UserHeader) | | UserHeader is a set of KV headers defined by user | -| Transform | [Transform](#object.Transform) | | Transform defines transform operation (e.g. payload split) | -| Tombstone | [Tombstone](#object.Tombstone) | | Tombstone header that set up in deleted objects | -| Token | [service.Token](#service.Token) | | Token header contains token of the session within which the object was created | -| HomoHash | [bytes](#bytes) | | HomoHash is a homomorphic hash of original object payload | -| PayloadChecksum | [bytes](#bytes) | | PayloadChecksum of actual object's payload | -| Integrity | [IntegrityHeader](#object.IntegrityHeader) | | Integrity header with checksum of all above headers in the object | -| StorageGroup | [storagegroup.StorageGroup](#storagegroup.StorageGroup) | | StorageGroup contains meta information for the data audit | -| PublicKey | [PublicKey](#object.PublicKey) | | PublicKey of owner of the object. Key is used for verification and can be based on NeoID or x509 cert. | - - - - -### Message IntegrityHeader - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| HeadersChecksum | [bytes](#bytes) | | HeadersChecksum is a checksum of all above headers in the object | -| ChecksumSignature | [bytes](#bytes) | | ChecksumSignature is an user's signature of checksum to verify if it is correct | - - - - -### Message Link - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| type | [Link.Type](#object.Link.Type) | | Type of link | -| ID | [bytes](#bytes) | | ID is an object identifier, is a valid UUIDv4 | - - - - -### Message Object - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| SystemHeader | [SystemHeader](#object.SystemHeader) | | SystemHeader describes system header | -| Headers | [Header](#object.Header) | repeated | Headers describes a set of an extended headers | -| Payload | [bytes](#bytes) | | Payload is an object's payload | - - - - -### Message PublicKey - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Value | [bytes](#bytes) | | Value contains marshaled ecdsa public key | - - - - -### Message Range - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Offset | [uint64](#uint64) | | Offset of the data range | -| Length | [uint64](#uint64) | | Length of the data range | - - - - -### Message SystemHeader - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Version | [uint64](#uint64) | | Version of the object structure | -| PayloadLength | [uint64](#uint64) | | PayloadLength is an object payload length | -| ID | [bytes](#bytes) | | ID is an object identifier, is a valid UUIDv4 | -| OwnerID | [bytes](#bytes) | | OwnerID is a wallet address | -| CID | [bytes](#bytes) | | CID is a SHA256 hash of the container structure (container identifier) | -| CreatedAt | [CreationPoint](#object.CreationPoint) | | CreatedAt is a timestamp of object creation | - - - - -### Message Tombstone - - - - - - -### Message Transform - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| type | [Transform.Type](#object.Transform.Type) | | Type of object transformation | - - - - -### Message UserHeader - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Key | [string](#string) | | Key of the user's header | -| Value | [string](#string) | | Value of the user's header | - - - - - - -### Link.Type - - -| Name | Number | Description | -| ---- | ------ | ----------- | -| Unknown | 0 | | -| Parent | 1 | Parent object created during object transformation | -| Previous | 2 | Previous object in the linked list created during object transformation | -| Next | 3 | Next object in the linked list created during object transformation | -| Child | 4 | Child object created during object transformation | -| StorageGroup | 5 | Object that included into this storage group | - - - - - -### Transform.Type - - -| Name | Number | Description | -| ---- | ------ | ----------- | -| Unknown | 0 | | -| Split | 1 | Split sets when object created after payload split | -| Sign | 2 | Sign sets when object created after re-signing (doesn't used) | -| Mould | 3 | Mould sets when object created after filling missing headers in the object | - - - - - - -## Scalar Value Types - -| .proto Type | Notes | C++ Type | Java Type | Python Type | -| ----------- | ----- | -------- | --------- | ----------- | -| double | | double | double | float | -| float | | float | float | float | -| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | -| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | -| uint32 | Uses variable-length encoding. | uint32 | int | int/long | -| uint64 | Uses variable-length encoding. | uint64 | long | int/long | -| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | -| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | -| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | -| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | -| sfixed32 | Always four bytes. | int32 | int | int | -| sfixed64 | Always eight bytes. | int64 | long | int/long | -| bool | | bool | boolean | boolean | -| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | -| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | - diff --git a/docs/query.md b/docs/query.md deleted file mode 100644 index c014c6c7..00000000 --- a/docs/query.md +++ /dev/null @@ -1,86 +0,0 @@ -# Protocol Documentation - - -## Table of Contents - -- [query/types.proto](#query/types.proto) - - - Messages - - [Filter](#query.Filter) - - [Query](#query.Query) - - -- [Scalar Value Types](#scalar-value-types) - - - - -

Top

- -## query/types.proto - - - - - - - -### Message Filter - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| type | [Filter.Type](#query.Filter.Type) | | Type of filter | -| Name | [string](#string) | | Name of field that should be filtered | -| Value | [string](#string) | | Value that should be used for filter | - - - - -### Message Query - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Filters | [Filter](#query.Filter) | repeated | Filters is set of filters, should not be empty | - - - - - - -### Filter.Type - - -| Name | Number | Description | -| ---- | ------ | ----------- | -| Exact | 0 | Exact sets when value of filter should be equal to the header value | -| Regex | 1 | Regex sets when value of filter should match the header value by the regular expression | - - - - - - -## Scalar Value Types - -| .proto Type | Notes | C++ Type | Java Type | Python Type | -| ----------- | ----- | -------- | --------- | ----------- | -| double | | double | double | float | -| float | | float | float | float | -| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | -| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | -| uint32 | Uses variable-length encoding. | uint32 | int | int/long | -| uint64 | Uses variable-length encoding. | uint64 | long | int/long | -| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | -| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | -| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | -| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | -| sfixed32 | Always four bytes. | int32 | int | int | -| sfixed64 | Always eight bytes. | int64 | long | int/long | -| bool | | bool | boolean | boolean | -| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | -| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | - diff --git a/docs/refs.md b/docs/refs.md deleted file mode 100644 index b8084825..00000000 --- a/docs/refs.md +++ /dev/null @@ -1,61 +0,0 @@ -# Protocol Documentation - - -## Table of Contents - -- [refs/types.proto](#refs/types.proto) - - - Messages - - [Address](#refs.Address) - - -- [Scalar Value Types](#scalar-value-types) - - - - -

Top

- -## refs/types.proto - - - - - - - -### Message Address -Address of object (container id + object id) - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| ObjectID | [bytes](#bytes) | | ObjectID is an object identifier, valid UUIDv4 represented in bytes | -| CID | [bytes](#bytes) | | CID is container identifier | - - - - - - - -## Scalar Value Types - -| .proto Type | Notes | C++ Type | Java Type | Python Type | -| ----------- | ----- | -------- | --------- | ----------- | -| double | | double | double | float | -| float | | float | float | float | -| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | -| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | -| uint32 | Uses variable-length encoding. | uint32 | int | int/long | -| uint64 | Uses variable-length encoding. | uint64 | long | int/long | -| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | -| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | -| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | -| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | -| sfixed32 | Always four bytes. | int32 | int | int | -| sfixed64 | Always eight bytes. | int64 | long | int/long | -| bool | | bool | boolean | boolean | -| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | -| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | - diff --git a/docs/service.md b/docs/service.md deleted file mode 100644 index 223ddd18..00000000 --- a/docs/service.md +++ /dev/null @@ -1,276 +0,0 @@ -# Protocol Documentation - - -## Table of Contents - -- [service/meta.proto](#service/meta.proto) - - - Messages - - [RequestExtendedHeader](#service.RequestExtendedHeader) - - [RequestExtendedHeader.KV](#service.RequestExtendedHeader.KV) - - [RequestMetaHeader](#service.RequestMetaHeader) - - [ResponseMetaHeader](#service.ResponseMetaHeader) - - -- [service/verify.proto](#service/verify.proto) - - - Messages - - [BearerTokenMsg](#service.BearerTokenMsg) - - [BearerTokenMsg.Info](#service.BearerTokenMsg.Info) - - [RequestVerificationHeader](#service.RequestVerificationHeader) - - [RequestVerificationHeader.Signature](#service.RequestVerificationHeader.Signature) - - [Token](#service.Token) - - [Token.Info](#service.Token.Info) - - [TokenLifetime](#service.TokenLifetime) - - -- [service/verify_test.proto](#service/verify_test.proto) - - - Messages - - [TestRequest](#service.TestRequest) - - -- [Scalar Value Types](#scalar-value-types) - - - - -

Top

- -## service/meta.proto - - - - - - - -### Message RequestExtendedHeader -RequestExtendedHeader contains extended headers of request - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Headers | [RequestExtendedHeader.KV](#service.RequestExtendedHeader.KV) | repeated | Headers carries list of key-value headers | - - - - -### Message RequestExtendedHeader.KV -KV contains string key-value pair - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| K | [string](#string) | | K carries extended header key | -| V | [string](#string) | | V carries extended header value | - - - - -### Message RequestMetaHeader -RequestMetaHeader contains information about request meta headers -(should be embedded into message) - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| TTL | [uint32](#uint32) | | TTL must be larger than zero, it decreased in every NeoFS Node | -| Epoch | [uint64](#uint64) | | Epoch for user can be empty, because node sets epoch to the actual value | -| Version | [uint32](#uint32) | | Version defines protocol version TODO: not used for now, should be implemented in future | -| Raw | [bool](#bool) | | Raw determines whether the request is raw or not | -| ExtendedHeader | [RequestExtendedHeader](#service.RequestExtendedHeader) | | ExtendedHeader carries extended headers of the request | - - - - -### Message ResponseMetaHeader -ResponseMetaHeader contains meta information based on request processing by server -(should be embedded into message) - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Epoch | [uint64](#uint64) | | Current NeoFS epoch on server | -| Version | [uint32](#uint32) | | Version defines protocol version TODO: not used for now, should be implemented in future | - - - - - - - - -

Top

- -## service/verify.proto - - - - - - - -### Message BearerTokenMsg -BearerTokenMsg carries information about request ACL rules with limited lifetime - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| TokenInfo | [BearerTokenMsg.Info](#service.BearerTokenMsg.Info) | | TokenInfo is a grouped information about token | -| OwnerKey | [bytes](#bytes) | | OwnerKey is a public key of the token owner | -| Signature | [bytes](#bytes) | | Signature is a signature of token information | - - - - -### Message BearerTokenMsg.Info - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| ACLRules | [bytes](#bytes) | | ACLRules carries a binary representation of the table of extended ACL rules | -| OwnerID | [bytes](#bytes) | | OwnerID is an owner of token | -| ValidUntil | [uint64](#uint64) | | ValidUntil carries a last epoch of token lifetime | - - - - -### Message RequestVerificationHeader -RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request -(should be embedded into message). - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Signatures | [RequestVerificationHeader.Signature](#service.RequestVerificationHeader.Signature) | repeated | Signatures is a set of signatures of every passed NeoFS Node | -| Token | [Token](#service.Token) | | Token is a token of the session within which the request is sent | -| Bearer | [BearerTokenMsg](#service.BearerTokenMsg) | | Bearer is a Bearer token of the request | - - - - -### Message RequestVerificationHeader.Signature - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Sign | [bytes](#bytes) | | Sign is signature of the request or session key. | -| Peer | [bytes](#bytes) | | Peer is compressed public key used for signature. | - - - - -### Message Token -User token granting rights for object manipulation - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| TokenInfo | [Token.Info](#service.Token.Info) | | TokenInfo is a grouped information about token | -| Signature | [bytes](#bytes) | | Signature is a signature of session token information | - - - - -### Message Token.Info - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| ID | [bytes](#bytes) | | ID is a token identifier. valid UUIDv4 represented in bytes | -| OwnerID | [bytes](#bytes) | | OwnerID is an owner of manipulation object | -| verb | [Token.Info.Verb](#service.Token.Info.Verb) | | Verb is a type of request for which the token is issued | -| Address | [refs.Address](#refs.Address) | | Address is an object address for which token is issued | -| Lifetime | [TokenLifetime](#service.TokenLifetime) | | Lifetime is a lifetime of the session | -| SessionKey | [bytes](#bytes) | | SessionKey is a public key of session key | -| OwnerKey | [bytes](#bytes) | | OwnerKey is a public key of the token owner | - - - - -### Message TokenLifetime -TokenLifetime carries a group of lifetime parameters of the token - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Created | [uint64](#uint64) | | Created carries an initial epoch of token lifetime | -| ValidUntil | [uint64](#uint64) | | ValidUntil carries a last epoch of token lifetime | - - - - - - -### Token.Info.Verb -Verb is an enumeration of session request types - -| Name | Number | Description | -| ---- | ------ | ----------- | -| Put | 0 | Put refers to object.Put RPC call | -| Get | 1 | Get refers to object.Get RPC call | -| Head | 2 | Head refers to object.Head RPC call | -| Search | 3 | Search refers to object.Search RPC call | -| Delete | 4 | Delete refers to object.Delete RPC call | -| Range | 5 | Range refers to object.GetRange RPC call | -| RangeHash | 6 | RangeHash refers to object.GetRangeHash RPC call | - - - - - - - -

Top

- -## service/verify_test.proto - - - - - - - -### Message TestRequest - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| IntField | [int32](#int32) | | | -| StringField | [string](#string) | | | -| BytesField | [bytes](#bytes) | | | -| CustomField | [bytes](#bytes) | | | -| Meta | [RequestMetaHeader](#service.RequestMetaHeader) | | | -| Header | [RequestVerificationHeader](#service.RequestVerificationHeader) | | | - - - - - - - -## Scalar Value Types - -| .proto Type | Notes | C++ Type | Java Type | Python Type | -| ----------- | ----- | -------- | --------- | ----------- | -| double | | double | double | float | -| float | | float | float | float | -| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | -| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | -| uint32 | Uses variable-length encoding. | uint32 | int | int/long | -| uint64 | Uses variable-length encoding. | uint64 | long | int/long | -| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | -| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | -| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | -| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | -| sfixed32 | Always four bytes. | int32 | int | int | -| sfixed64 | Always eight bytes. | int64 | long | int/long | -| bool | | bool | boolean | boolean | -| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | -| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | - diff --git a/docs/session.md b/docs/session.md deleted file mode 100644 index 5ec74025..00000000 --- a/docs/session.md +++ /dev/null @@ -1,97 +0,0 @@ -# Protocol Documentation - - -## Table of Contents - -- [session/service.proto](#session/service.proto) - - Services - - [Session](#session.Session) - - - Messages - - [CreateRequest](#session.CreateRequest) - - [CreateResponse](#session.CreateResponse) - - -- [Scalar Value Types](#scalar-value-types) - - - - -

Top

- -## session/service.proto - - - - - - -### Service "session.Session" - - -``` -rpc Create(CreateRequest) returns (CreateResponse); - -``` - -#### Method Create - -Create opens new session between the client and the server - -| Name | Input | Output | -| ---- | ----- | ------ | -| Create | [CreateRequest](#session.CreateRequest) | [CreateResponse](#session.CreateResponse) | - - - - - -### Message CreateRequest -CreateRequest carries an information necessary for opening a session - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| OwnerID | [bytes](#bytes) | | OwnerID carries an identifier of a session initiator | -| Lifetime | [service.TokenLifetime](#service.TokenLifetime) | | Lifetime carries a lifetime of the session | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - -### Message CreateResponse -CreateResponse carries an information about the opened session - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| ID | [bytes](#bytes) | | ID carries an identifier of session token | -| SessionKey | [bytes](#bytes) | | SessionKey carries a session public key | - - - - - - - -## Scalar Value Types - -| .proto Type | Notes | C++ Type | Java Type | Python Type | -| ----------- | ----- | -------- | --------- | ----------- | -| double | | double | double | float | -| float | | float | float | float | -| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | -| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | -| uint32 | Uses variable-length encoding. | uint32 | int | int/long | -| uint64 | Uses variable-length encoding. | uint64 | long | int/long | -| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | -| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | -| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | -| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | -| sfixed32 | Always four bytes. | int32 | int | int | -| sfixed64 | Always eight bytes. | int64 | long | int/long | -| bool | | bool | boolean | boolean | -| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | -| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | - diff --git a/docs/state.md b/docs/state.md deleted file mode 100644 index 3b7b89dd..00000000 --- a/docs/state.md +++ /dev/null @@ -1,270 +0,0 @@ -# Protocol Documentation - - -## Table of Contents - -- [state/service.proto](#state/service.proto) - - Services - - [Status](#state.Status) - - - Messages - - [ChangeStateRequest](#state.ChangeStateRequest) - - [ChangeStateResponse](#state.ChangeStateResponse) - - [DumpRequest](#state.DumpRequest) - - [DumpResponse](#state.DumpResponse) - - [DumpVarsRequest](#state.DumpVarsRequest) - - [DumpVarsResponse](#state.DumpVarsResponse) - - [HealthRequest](#state.HealthRequest) - - [HealthResponse](#state.HealthResponse) - - [MetricsRequest](#state.MetricsRequest) - - [MetricsResponse](#state.MetricsResponse) - - [NetmapRequest](#state.NetmapRequest) - - -- [Scalar Value Types](#scalar-value-types) - - - - -

Top

- -## state/service.proto - - - - - - -### Service "state.Status" -Status service provides node's healthcheck and status info. -TODO: decide how to describe auth and were contains permissions. - -``` -rpc Netmap(NetmapRequest) returns (.bootstrap.SpreadMap); -rpc Metrics(MetricsRequest) returns (MetricsResponse); -rpc HealthCheck(HealthRequest) returns (HealthResponse); -rpc DumpConfig(DumpRequest) returns (DumpResponse); -rpc DumpVars(DumpVarsRequest) returns (DumpVarsResponse); -rpc ChangeState(ChangeStateRequest) returns (ChangeStateResponse); - -``` - -#### Method Netmap - -Netmap request allows to receive current [bootstrap.SpreadMap](bootstrap.md#bootstrap.SpreadMap) - -| Name | Input | Output | -| ---- | ----- | ------ | -| Netmap | [NetmapRequest](#state.NetmapRequest) | [.bootstrap.SpreadMap](#bootstrap.SpreadMap) | -#### Method Metrics - -Metrics request allows to receive metrics in prometheus format - -| Name | Input | Output | -| ---- | ----- | ------ | -| Metrics | [MetricsRequest](#state.MetricsRequest) | [MetricsResponse](#state.MetricsResponse) | -#### Method HealthCheck - -HealthCheck request allows to check health status of the node. -If node unhealthy field Status would contains detailed info. - -| Name | Input | Output | -| ---- | ----- | ------ | -| HealthCheck | [HealthRequest](#state.HealthRequest) | [HealthResponse](#state.HealthResponse) | -#### Method DumpConfig - -DumpConfig request allows dumping settings for the current node. -To permit access, used server config options. -The request should be signed. - -| Name | Input | Output | -| ---- | ----- | ------ | -| DumpConfig | [DumpRequest](#state.DumpRequest) | [DumpResponse](#state.DumpResponse) | -#### Method DumpVars - -DumpVars returns debug variables for the current node. -To permit access, used server config options. -The request should be signed. - -| Name | Input | Output | -| ---- | ----- | ------ | -| DumpVars | [DumpVarsRequest](#state.DumpVarsRequest) | [DumpVarsResponse](#state.DumpVarsResponse) | -#### Method ChangeState - -ChangeState allows to change current node state of node. -To permit access, used server config options. -The request should be signed. - -| Name | Input | Output | -| ---- | ----- | ------ | -| ChangeState | [ChangeStateRequest](#state.ChangeStateRequest) | [ChangeStateResponse](#state.ChangeStateResponse) | - - - - - -### Message ChangeStateRequest -ChangeStateRequest contains a new state of node. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| state | [ChangeStateRequest.State](#state.ChangeStateRequest.State) | | State is a new state of node. | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - -### Message ChangeStateResponse -ChangeStateResponse is an empty response, that returns when RPC invoked without errors. - - - - - -### Message DumpRequest -DumpRequest message to fetch current server config. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - -### Message DumpResponse -DumpResponse message contains current server config. -Config stored in JSON encoded into slice of bytes. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Config | [bytes](#bytes) | | | - - - - -### Message DumpVarsRequest -DumpVarsRequest message to fetch current server debug variables. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - -### Message DumpVarsResponse -DumpVarsResponse message contains current server debug variables. -Variables stored in JSON encoded into slice of bytes. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Variables | [bytes](#bytes) | | | - - - - -### Message HealthRequest -HealthRequest message to check current state - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - -### Message HealthResponse -HealthResponse message with current state - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Healthy | [bool](#bool) | | Healthy is true when node alive and healthy | -| Status | [string](#string) | | Status contains detailed information about health status | - - - - -### Message MetricsRequest -MetricsRequest message to request node metrics - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - -### Message MetricsResponse -MetricsResponse contains [][]byte, -every []byte is marshaled MetricFamily proto message -from github.com/prometheus/client_model/metrics.proto - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Metrics | [bytes](#bytes) | repeated | | - - - - -### Message NetmapRequest -NetmapRequest message to request current node netmap - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - - - -### ChangeStateRequest.State - - -| Name | Number | Description | -| ---- | ------ | ----------- | -| Unknown | 0 | Unknown is default value. Does nothing. | -| Online | 1 | Online used when need to set node to the online state. | -| Offline | 2 | Offline used when need to set node to the offline state. | - - - - - - -## Scalar Value Types - -| .proto Type | Notes | C++ Type | Java Type | Python Type | -| ----------- | ----- | -------- | --------- | ----------- | -| double | | double | double | float | -| float | | float | float | float | -| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | -| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | -| uint32 | Uses variable-length encoding. | uint32 | int | int/long | -| uint64 | Uses variable-length encoding. | uint64 | long | int/long | -| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | -| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | -| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | -| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | -| sfixed32 | Always four bytes. | int32 | int | int | -| sfixed64 | Always eight bytes. | int64 | long | int/long | -| bool | | bool | boolean | boolean | -| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | -| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | - diff --git a/docs/storagegroup.md b/docs/storagegroup.md deleted file mode 100644 index 7522902c..00000000 --- a/docs/storagegroup.md +++ /dev/null @@ -1,88 +0,0 @@ -# Protocol Documentation - - -## Table of Contents - -- [storagegroup/types.proto](#storagegroup/types.proto) - - - Messages - - [StorageGroup](#storagegroup.StorageGroup) - - [StorageGroup.Lifetime](#storagegroup.StorageGroup.Lifetime) - - -- [Scalar Value Types](#scalar-value-types) - - - - -

Top

- -## storagegroup/types.proto - - - - - - - -### Message StorageGroup - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| ValidationDataSize | [uint64](#uint64) | | ValidationDataSize is size of the all object's payloads included into storage group | -| ValidationHash | [bytes](#bytes) | | ValidationHash is homomorphic hash of all object's payloads included into storage group | -| lifetime | [StorageGroup.Lifetime](#storagegroup.StorageGroup.Lifetime) | | Lifetime is time until storage group is valid | - - - - -### Message StorageGroup.Lifetime - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| unit | [StorageGroup.Lifetime.Unit](#storagegroup.StorageGroup.Lifetime.Unit) | | Unit is lifetime type | -| Value | [int64](#int64) | | Value for lifetime | - - - - - - -### StorageGroup.Lifetime.Unit - - -| Name | Number | Description | -| ---- | ------ | ----------- | -| Unlimited | 0 | Unlimited set if storage group always valid | -| NeoFSEpoch | 1 | NeoFSEpoch set if storage group is valid until lifetime NeoFS epoch | -| UnixTime | 2 | UnixTime set if storage group is valid until lifetime unix timestamp | - - - - - - -## Scalar Value Types - -| .proto Type | Notes | C++ Type | Java Type | Python Type | -| ----------- | ----- | -------- | --------- | ----------- | -| double | | double | double | float | -| float | | float | float | float | -| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | -| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | -| uint32 | Uses variable-length encoding. | uint32 | int | int/long | -| uint64 | Uses variable-length encoding. | uint64 | long | int/long | -| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | -| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | -| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | -| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | -| sfixed32 | Always four bytes. | int32 | int | int | -| sfixed64 | Always eight bytes. | int64 | long | int/long | -| bool | | bool | boolean | boolean | -| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | -| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | -