74e917810a
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. |
||
---|---|---|
.github | ||
accounting | ||
acl | ||
bootstrap | ||
chain | ||
container | ||
decimal | ||
docs | ||
hash | ||
internal | ||
object | ||
query | ||
refs | ||
service | ||
session | ||
state | ||
storagegroup | ||
.gitattributes | ||
.gitignore | ||
CHANGELOG.md | ||
go.mod | ||
go.sum | ||
LICENSE | ||
Makefile | ||
README.md |
NeoFS API
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