FrostFS API Golang repository contains implementation of core FrostFS structures that can be used for integration with FrostFS.
sdk
Find a file
Evgeniy Kulikov 8d028100e9
service: Use sync pool for Sign/Verify request headers
```
// Before
BenchmarkSignRequestHeader-8   	     146	   8070375 ns/op	 4210607 B/op	      48 allocs/op
BenchmarkVerifyRequestHeader-8   	      14	  83058325 ns/op	42085955 B/op	    1601 allocs/op

// After
BenchmarkSignRequestHeader-8   	     156	   7709172 ns/op	   33902 B/op	      45 allocs/op
BenchmarkVerifyRequestHeader-8   	      15	  76910232 ns/op	   54368 B/op	    1563 allocs/op

// Summary:
benchmark                          old ns/op     new ns/op     delta
BenchmarkSignRequestHeader-8       8070375       7709172       -4.48%
BenchmarkVerifyRequestHeader-8     83058325      76910232      -7.40%

benchmark                          old allocs     new allocs     delta
BenchmarkSignRequestHeader-8       48             45             -6.25%
BenchmarkVerifyRequestHeader-8     1601           1563           -2.37%

benchmark                          old bytes     new bytes     delta
BenchmarkSignRequestHeader-8       4210607       33902         -99.19%
BenchmarkVerifyRequestHeader-8     42085955      54368         -99.87%
```
2019-12-20 17:14:51 +03:00
.github Add CODECOV_TOKEN 2019-11-21 14:09:44 +03:00
accounting service: get rid of signature field in accounting + proto generate 2019-11-26 15:53:55 +03:00
bootstrap Update develop branch 2019-11-21 13:10:57 +03:00
chain initial 2019-11-18 16:34:06 +03:00
container Use expanded field naming in AccessGroup structure 2019-12-17 19:48:44 +03:00
decimal docs: regenerate proto files 2019-11-20 21:43:04 +03:00
docs state: add request to dump node config 2019-12-17 14:08:59 +03:00
hash initial 2019-11-18 16:34:06 +03:00
internal initial 2019-11-18 16:34:06 +03:00
object proto: publish sg lib, rewrite object 2019-12-02 19:46:15 +03:00
query docs: regenerate proto files 2019-11-21 10:34:38 +03:00
refs docs: regenerate proto files 2019-11-21 10:34:38 +03:00
service service: Use sync pool for Sign/Verify request headers 2019-12-20 17:14:51 +03:00
session proto: regenerate proto files 2019-11-21 16:16:39 +03:00
state Fix bug with DecodeMetrics (empty metrics returns) 2019-12-17 17:53:48 +03:00
storagegroup proto: publish sg lib, rewrite object 2019-12-02 19:46:15 +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 2019-12-17 18:03:24 +03:00
go.mod service: Use sync pool for Sign/Verify request headers 2019-12-20 17:14:51 +03:00
go.sum state: add method to encode config into response message 2019-12-17 14:09:52 +03:00
LICENSE.md initial 2019-11-18 16:34:06 +03:00
Makefile Update develop branch 2019-11-21 13:10:57 +03:00
README.md docs: generate documentation for proto files 2019-11-20 21:43:04 +03:00

NeoFS-proto

NeoFS-proto 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-proto 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 GPLv3 License - see the LICENSE.md file for details