2020-07-24 13:54:03 +00:00
< p align = "center" >
2023-01-09 07:04:58 +00:00
< img src = "./.github/logo.svg" width = "500px" alt = "FrostFS" >
2020-07-24 13:54:03 +00:00
< / p >
2023-01-09 07:04:58 +00:00
2020-07-24 13:54:03 +00:00
< p align = "center" >
2023-01-09 07:04:58 +00:00
< a href = "https://frostfs.info" > FrostFS< / a > is a decentralized distributed object storage integrated with the < a href = "https://neo.org" > NEO Blockchain< / a > .
2020-07-24 13:54:03 +00:00
< / p >
---
2023-01-09 07:04:58 +00:00
[![Report ](https://goreportcard.com/badge/github.com/TrueCloudLab/frostfs-node )](https://goreportcard.com/report/github.com/TrueCloudLab/frostfs-node)
![GitHub release (latest SemVer) ](https://img.shields.io/github/v/release/TrueCloudLab/frostfs-node?sort=semver )
![License ](https://img.shields.io/github/license/TrueCloudLab/frostfs-node.svg?style=popout )
2020-07-24 13:54:03 +00:00
# Overview
2023-01-09 07:04:58 +00:00
FrostFS Nodes are organized in a peer-to-peer network that takes care of storing
2022-03-04 06:55:25 +00:00
and distributing user's data. Any Neo user may participate in the network and
2022-04-21 11:28:05 +00:00
get paid for providing storage resources to other users or store their data in
2023-01-09 07:04:58 +00:00
FrostFS and pay a competitive price for it.
2020-07-24 13:54:03 +00:00
2023-01-09 07:04:58 +00:00
Users can reliably store object data in the FrostFS network and have a transparent
2022-03-04 06:55:25 +00:00
data placement process due to a decentralized architecture and flexible storage
2020-07-24 13:54:03 +00:00
policies. Each node is responsible for executing the storage policies that the
users select for geographical location, reliability level, number of nodes, type
2023-01-09 07:04:58 +00:00
of disks, capacity, etc. Thus, FrostFS gives full control over data to users.
2020-07-24 13:54:03 +00:00
2023-01-09 07:04:58 +00:00
Deep [Neo Blockchain ](https://neo.org ) integration allows FrostFS to be used by
2022-03-04 06:55:25 +00:00
dApps directly from
2020-07-24 13:54:03 +00:00
[NeoVM ](https://docs.neo.org/docs/en-us/basic/technology/neovm.html ) on the
2021-12-10 11:24:04 +00:00
[Smart Contract ](https://docs.neo.org/docs/en-us/intro/glossary.html )
2020-07-24 13:54:03 +00:00
code level. This way dApps are not limited to on-chain storage and can
manipulate large amounts of data without paying a prohibitive price.
2023-03-07 13:38:26 +00:00
FrostFS has a native [gRPC API ](https://git.frostfs.info/TrueCloudLab/frostfs-api ) and has
2022-03-04 06:55:25 +00:00
protocol gateways for popular protocols such as [AWS
2023-01-09 07:04:58 +00:00
S3](https://github.com/TrueCloudLab/frostfs-s3-gw),
[HTTP ](https://github.com/TrueCloudLab/frostfs-http-gw ),
2020-07-24 13:54:03 +00:00
[FUSE ](https://wikipedia.org/wiki/Filesystem_in_Userspace ) and
[sFTP ](https://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol ) allowing
2021-12-10 11:24:04 +00:00
developers to integrate applications without rewriting their code.
2020-07-24 13:54:03 +00:00
2021-04-20 19:14:43 +00:00
# Supported platforms
2022-04-21 11:28:05 +00:00
Now, we only support GNU/Linux on amd64 CPUs with AVX/AVX2 instructions. More
2022-03-04 06:55:25 +00:00
platforms will be officially supported after release `1.0` .
2021-04-20 19:14:43 +00:00
2023-01-09 07:04:58 +00:00
The latest version of frostfs-node works with frostfs-contract
[v0.16.0 ](https://github.com/TrueCloudLab/frostfs-contract/releases/tag/v0.16.0 ).
2021-06-03 16:39:27 +00:00
2022-06-30 12:48:56 +00:00
# Building
2023-07-10 07:08:50 +00:00
To make all binaries you need Go 1.19+ and `make` :
2022-06-30 12:48:56 +00:00
```
make all
```
The resulting binaries will appear in `bin/` folder.
To make a specific binary use:
```
2023-01-09 07:04:58 +00:00
make bin/frostfs-< name >
2022-06-30 12:48:56 +00:00
```
See the list of all available commands in the `cmd` folder.
## Building with Docker
Building can also be performed in a container:
```
make docker/all # build all binaries
2023-01-09 07:04:58 +00:00
make docker/bin/frostfs-< name > # build a specific binary
2022-06-30 12:48:56 +00:00
```
## Docker images
2023-01-09 07:04:58 +00:00
To make docker images suitable for use in [frostfs-dev-env ](https://github.com/TrueCloudLab/frostfs-dev-env/ ) use:
2022-06-30 12:48:56 +00:00
```
make images
```
2020-07-24 13:54:03 +00:00
# Contributing
Feel free to contribute to this project after reading the [contributing
guidelines](CONTRIBUTING.md).
2020-12-30 10:07:48 +00:00
Before starting to work on a certain topic, create a new issue first, describing
the feature/topic you are going to implement.
2020-07-24 13:54:03 +00:00
# Credits
2023-01-09 07:04:58 +00:00
FrostFS is maintained by [True Cloud Lab ](https://github.com/TrueCloudLab/ ) with the help and
2020-07-24 13:54:03 +00:00
contributions from community members.
Please see [CREDITS ](CREDITS.md ) for details.
# License
- [GNU General Public License v3.0 ](LICENSE )