FrostFS API Golang repository contains implementation of core FrostFS structures that can be used for integration with FrostFS.
Find a file
Leonard Lyubich 74e917810a service: support broken apart signable payload of the requests
In previous implementation service package provided types and functions
that wrapped signing/verification of data with session token.
This allowed us to use these functions for signing / verification of
service requests of other packages. To support the expansion of messages
with additional parts that need to be signed, you must be able to easily
expand the signed data with new parts.

To achieve the described goal, this commit makes the following changes:

  * adds GroupSignedPayloads and GroupVerifyPayloads functions;

  * renames SignedDataWithToken to RequestData, DataWithTokenSignAccumulator
    to RequestSignedData, DataWithTokenSignSource to RequestVerifyData;

  * renames SignDataWithSessionToken/VerifyAccumulatedSignaturesWithToken
    function to SignRequestData/VerifyRequestData and makes it to use
    GroupSignedPayloads/GroupVerifyPayloads internally.
2020-06-10 20:37:10 +03:00
.github ci cache modules 2020-03-16 18:54:04 +03:00
accounting service: support broken apart signable payload of the requests 2020-06-10 20:37:10 +03:00
acl proto: Update proto library to v0.6.0 2020-04-02 15:15:59 +03:00
bootstrap service: support broken apart signable payload of the requests 2020-06-10 20:37:10 +03:00
chain Migrate to new repo 2020-03-31 10:05:26 +03:00
container service: support broken apart signable payload of the requests 2020-06-10 20:37:10 +03:00
decimal Migrate to new repo 2020-03-31 10:05:26 +03:00
docs Update to neofs-api v0.7.5 2020-05-15 16:00:02 +03:00
hash Migrate to new repo 2020-03-31 10:05:26 +03:00
internal initial 2019-11-18 16:34:06 +03:00
object service: support broken apart signable payload of the requests 2020-06-10 20:37:10 +03:00
query Migrate to new repo 2020-03-31 10:05:26 +03:00
refs session: implement gRPC session creator 2020-05-08 12:34:16 +03:00
service service: support broken apart signable payload of the requests 2020-06-10 20:37:10 +03:00
session service: support broken apart signable payload of the requests 2020-06-10 20:37:10 +03:00
state service: support broken apart signable payload of the requests 2020-06-10 20:37:10 +03:00
storagegroup Migrate to new repo 2020-03-31 10:05:26 +03:00
.gitattributes initial 2019-11-18 16:34:06 +03:00
.gitignore initial 2019-11-18 16:34:06 +03:00
CHANGELOG.md CHANGELOG 2020-05-26 13:11:55 +03:00
go.mod Bump major release 2020-05-26 13:06:43 +03:00
go.sum Bump major release 2020-05-26 13:06:43 +03:00
LICENSE change license 2020-04-10 09:22:35 +03:00
Makefile Bump major release 2020-05-26 13:06:43 +03:00
README.md update license in readme 2020-04-10 09:22:35 +03:00

NeoFS API

Go codecov Report GitHub release GitHub license


NeoFS API repository contains implementation of core NeoFS structures that can be used for integration with NeoFS.

Description

Repository contains 13 packages that implement NeoFS core structures. These packages mostly contain protobuf files with service and structure definitions or NeoFS core types with complemented functions.

There is a auto-generated documentation for protobuf files in docs.

Accounting

Accounting package defines services and structures for accounting operations: balance request and cheque operations for withdraw. Cheque is a structure with inner ring signatures, which approve that user can withdraw requested amount of assets. NeoFS smart contract takes binary formatted cheque as a parameter in withdraw call.

API

Accounting package defines:

Bootstrap

Bootstrap package defines bootstrap service which is used by storage nodes to connect to the storage network.

API

Bootstrap package defines:

Chain

Chain package contains util functions for operations with NEO Blockchain types: wallet addresses, script-hashes.

Container

Container package defines service and structures for operations with containers. Objects in NeoFS are stored in containers. Container defines storage policy for the objects.

API

Bootstrap package defines:

Decimal

Decimal defines custom decimal implementation which is used in accounting operations.

Hash

Hash package defines homomorphic hash type.

Internal

Internal package defines constant error type and proto interface for custom protobuf structures.

Object

Object package defines service and structures for object operations. Object is a core storage structure in NeoFS. Package contains detailed information about object internal structure.

API

Object package defines:

Query

Query package defines structure for object search requests.

Refs

Refs package defines core identity types: Object ID, Container ID, etc.

Service

Service package defines util structure and functions for all NeoFS services operations: TTL and request signature management, node roles, epoch retriever.

Session

Session package defines service and structures for session obtain. Object operations require an established session with pair of session keys signed by owner of the object.

API

Session package defines:

State

State package defines service and structures for metrics gathering.

API

State package defines:

How to use

NeoFS API packages contain godoc documentation. Examples of using most of these packages can be found in NeoFS-CLI repository. CLI implements and demonstrates all basic interactions with NeoFS: container, object, storage group, and accounting operations.

Protobuf files are recompiled with the command:

$ make protoc

Contributing

At this moment, we do not accept contributions.

License

This project is licensed under the Apache 2.0 License - see the LICENSE file for details