2020-04-01 15:04:37 +00:00
|
|
|
# NeoFS-API
|
2020-01-30 11:41:24 +00:00
|
|
|
|
2020-04-01 15:04:37 +00:00
|
|
|
NeoFS-API repository contains language-agnostic
|
|
|
|
[protocol buffers](https://developers.google.com/protocol-buffers) definitions
|
|
|
|
of neofs-node structures and services.
|
2020-01-30 11:41:24 +00:00
|
|
|
|
|
|
|
## Description
|
|
|
|
|
2020-04-01 15:04:37 +00:00
|
|
|
NeoFS-API repository is the basis for language-specific libraries, e.g.:
|
2020-01-30 11:41:24 +00:00
|
|
|
|
2020-04-01 15:04:37 +00:00
|
|
|
- [neofs-api-go](https://github.com/nspcc-dev/neofs-api-go)
|
|
|
|
- [neofs-api-csharp](https://github.com/nspcc-dev/neofs-api-csharp)
|
2020-01-30 11:41:24 +00:00
|
|
|
|
2020-04-01 15:04:37 +00:00
|
|
|
These libraries contain compiled protocol buffers code, defined in this
|
|
|
|
repository. Use them to integrate applications with NeoFS.
|
2020-01-30 11:41:24 +00:00
|
|
|
|
2020-04-01 15:04:37 +00:00
|
|
|
This repository contains:
|
|
|
|
|
2020-04-01 15:48:49 +00:00
|
|
|
- 12 protocol buffers packages,
|
2020-04-01 15:04:37 +00:00
|
|
|
- [auto-generated docs](proto-docs) for protocol buffers,
|
|
|
|
- [manually written docs](docs) for developers (to be done).
|
|
|
|
|
|
|
|
|
|
|
|
### Protocol packages
|
|
|
|
|
|
|
|
#### Accounting
|
|
|
|
|
|
|
|
Accounting package defines services and structures for balance request and
|
|
|
|
`cheque` operations.
|
|
|
|
|
|
|
|
See:
|
2020-01-30 11:41:24 +00:00
|
|
|
|
|
|
|
- [Accounting service](proto-docs/accounting.md#accounting.Accounting)
|
|
|
|
- [Withdraw service](proto-docs/accounting.md#accounting.Withdraw)
|
|
|
|
|
2020-04-01 15:48:49 +00:00
|
|
|
#### ACL
|
|
|
|
|
|
|
|
ACL package defines targets of access control rules.
|
2020-01-30 11:41:24 +00:00
|
|
|
|
2020-04-01 15:04:37 +00:00
|
|
|
#### Bootstrap
|
2020-01-30 11:41:24 +00:00
|
|
|
|
2020-04-01 15:04:37 +00:00
|
|
|
Bootstrap package defines bootstrap service that connects storage nodes
|
|
|
|
to the network.
|
2020-01-30 11:41:24 +00:00
|
|
|
|
2020-04-01 15:04:37 +00:00
|
|
|
See:
|
2020-01-30 11:41:24 +00:00
|
|
|
|
2020-04-01 15:04:37 +00:00
|
|
|
- [Bootstrap service](proto-docs/bootstrap.md#bootstrap.Bootstrap)
|
2020-01-30 11:41:24 +00:00
|
|
|
|
|
|
|
|
2020-04-01 15:04:37 +00:00
|
|
|
#### Container
|
2020-01-30 11:41:24 +00:00
|
|
|
|
2020-04-01 15:04:37 +00:00
|
|
|
Container package defines service and structure of containers. NeoFS stores
|
|
|
|
objects within the registered container according to a specified storage policy.
|
2020-01-30 11:41:24 +00:00
|
|
|
|
2020-04-01 15:04:37 +00:00
|
|
|
See:
|
2020-01-30 11:41:24 +00:00
|
|
|
|
|
|
|
- [Container service](proto-docs/container.md#container.Service)
|
|
|
|
|
2020-04-01 16:22:11 +00:00
|
|
|
#### Decimal
|
|
|
|
|
|
|
|
Decimal defines structure for encoding assets amount.
|
|
|
|
|
2020-04-01 15:04:37 +00:00
|
|
|
#### Object
|
2020-01-30 11:41:24 +00:00
|
|
|
|
2020-04-01 15:04:37 +00:00
|
|
|
Object is the storage unit in NeoFS. Object package defines structure of the
|
|
|
|
object and service requests.
|
2020-01-30 11:41:24 +00:00
|
|
|
|
2020-04-01 15:04:37 +00:00
|
|
|
See:
|
2020-01-30 11:41:24 +00:00
|
|
|
|
|
|
|
- [Object service](proto-docs/object.md#object.Service)
|
|
|
|
|
2020-04-01 15:04:37 +00:00
|
|
|
#### Query
|
2020-01-30 11:41:24 +00:00
|
|
|
|
|
|
|
Query package defines structure for object search requests.
|
|
|
|
|
2020-04-01 15:04:37 +00:00
|
|
|
#### Refs
|
2020-01-30 11:41:24 +00:00
|
|
|
|
2020-04-01 15:04:37 +00:00
|
|
|
Refs package defines identity types: object id, container id, etc.
|
2020-01-30 11:41:24 +00:00
|
|
|
|
2020-04-01 15:04:37 +00:00
|
|
|
#### Service
|
2020-01-30 11:41:24 +00:00
|
|
|
|
2020-04-01 15:04:37 +00:00
|
|
|
Service package defines utility structures for all public API requests:
|
|
|
|
TTL, request signature, etc.
|
2020-01-30 11:41:24 +00:00
|
|
|
|
2020-04-01 15:04:37 +00:00
|
|
|
#### Session
|
2020-01-30 11:41:24 +00:00
|
|
|
|
2020-04-01 15:04:37 +00:00
|
|
|
Session package defines service and structures to setup session between
|
|
|
|
the node and the client. Session token is required in some object service
|
|
|
|
requests. Node uses session private key to re-sign new objects and requests.
|
|
|
|
|
|
|
|
See:
|
2020-01-30 11:41:24 +00:00
|
|
|
|
|
|
|
- [Session service](proto-docs/session.md#session.Session)
|
|
|
|
|
2020-04-01 15:04:37 +00:00
|
|
|
#### State
|
2020-01-30 11:41:24 +00:00
|
|
|
|
|
|
|
State package defines service and structures for metrics gathering.
|
|
|
|
|
2020-04-01 15:04:37 +00:00
|
|
|
See:
|
|
|
|
|
2020-01-30 11:41:24 +00:00
|
|
|
- [Status service](proto-docs/state.md#state.Status)
|
|
|
|
|
2020-04-01 15:04:37 +00:00
|
|
|
#### StorageGroup
|
|
|
|
|
|
|
|
Storagegroup package defines structure that contains meta data for data audit.
|
|
|
|
This meta data stored as a header in the NeoFS object.
|
2020-01-30 11:41:24 +00:00
|
|
|
|
|
|
|
|
|
|
|
## License
|
|
|
|
|
|
|
|
This project is licensed under the GPLv3 License -
|
|
|
|
see the [LICENSE.md](LICENSE.md) file for details
|