2018-08-20 20:46:45 +01:00
# Storj V3 Network
2018-04-06 17:32:34 +01:00
2019-04-16 00:23:56 +01:00
[![Go Report Card ](https://goreportcard.com/badge/storj.io/storj )](https://goreportcard.com/report/storj.io/storj)
2020-04-13 21:31:48 +01:00
[![Go Doc ](https://img.shields.io/badge/godoc-reference-blue.svg?style=flat-square )](https://pkg.go.dev/storj.io/storj)
2020-12-28 21:59:06 +00:00
[![Coverage Status ](https://img.shields.io/badge/coverage-master-green.svg )](https://build.dev.storj.io/job/storj/job/main/cobertura)
2018-11-16 02:03:41 +00:00
![Alpha ](https://img.shields.io/badge/version-alpha-green.svg )
2018-04-06 17:32:34 +01:00
2020-12-28 21:59:06 +00:00
< img src = "https://github.com/storj/storj/raw/main/resources/logo.png" width = "100" >
2018-04-06 17:32:34 +01:00
2019-10-21 09:48:32 +01:00
Storj is building a decentralized cloud storage network.
2021-05-03 10:27:07 +01:00
[Check out our white paper for more info! ](https://storj.io/storj.pdf )
2018-04-06 17:32:34 +01:00
----
2018-10-30 01:50:38 +00:00
Storj is an S3-compatible platform and suite of decentralized applications that
2018-08-29 16:28:29 +01:00
allows you to store data in a secure and decentralized manner. Your files are
encrypted, broken into little pieces and stored in a global decentralized
2018-08-26 17:38:38 +01:00
network of computers. Luckily, we also support allowing you (and only you) to
2018-08-29 16:28:29 +01:00
retrieve those files!
2018-04-06 17:32:34 +01:00
2018-08-17 20:05:03 +01:00
## Table of Contents
2018-10-30 00:36:17 +00:00
- [Contributing ](#contributing-to-storj )
2018-10-30 01:50:38 +00:00
- [Start using Storj ](#start-using-storj )
2018-08-29 16:28:29 +01:00
- [License ](#license )
2018-08-17 20:05:03 +01:00
- [Support ](#support )
2018-10-30 00:36:17 +00:00
# Contributing to Storj
2019-11-19 23:08:16 +00:00
[![ ](https://sourcerer.io/fame/jtolds/storj/storj/images/0 )](https://sourcerer.io/fame/jtolds/storj/storj/links/0)[![](https://sourcerer.io/fame/jtolds/storj/storj/images/1)](https://sourcerer.io/fame/jtolds/storj/storj/links/1)[![](https://sourcerer.io/fame/jtolds/storj/storj/images/2)](https://sourcerer.io/fame/jtolds/storj/storj/links/2)[![](https://sourcerer.io/fame/jtolds/storj/storj/images/3)](https://sourcerer.io/fame/jtolds/storj/storj/links/3)[![](https://sourcerer.io/fame/jtolds/storj/storj/images/4)](https://sourcerer.io/fame/jtolds/storj/storj/links/4)[![](https://sourcerer.io/fame/jtolds/storj/storj/images/5)](https://sourcerer.io/fame/jtolds/storj/storj/links/5)[![](https://sourcerer.io/fame/jtolds/storj/storj/images/6)](https://sourcerer.io/fame/jtolds/storj/storj/links/6)[![](https://sourcerer.io/fame/jtolds/storj/storj/images/7)](https://sourcerer.io/fame/jtolds/storj/storj/links/7)
2018-10-30 01:50:38 +00:00
All of our code for Storj v3 is open source. Have a code change you think would make Storj better? Please send a pull request along! Make sure to sign our [Contributor License Agreement (CLA) ](https://docs.google.com/forms/d/e/1FAIpQLSdVzD5W8rx-J_jLaPuG31nbOzS8yhNIIu4yHvzonji6NeZ4ig/viewform ) first. See our [license section ](#license ) for more details.
2018-10-30 00:36:17 +00:00
2019-10-21 09:48:32 +01:00
Have comments or bug reports? Want to propose a PR before hand-crafting it? Jump on to our [forum ](https://forum.storj.io ) and join the [Engineering Discussions ](https://forum.storj.io/c/engineer-amas ) to say hi to the developer community and to talk to the Storj core team.
2019-05-07 21:14:25 +01:00
2021-01-28 15:16:57 +00:00
Want to vote on or suggest new features? Post it on the [forum ](https://forum.storj.io/c/parent-cat/5 ).
2018-04-06 17:32:34 +01:00
2018-10-30 08:27:57 +00:00
### Issue tracking and roadmap
See the breakdown of what we're building by checking out the following resources:
2019-02-25 14:09:44 +00:00
* [White paper ](https://storj.io/whitepaper )
2018-10-30 08:27:57 +00:00
2018-07-19 20:48:51 +01:00
### Install required packages
2018-04-17 14:38:31 +01:00
2019-09-29 03:40:07 +01:00
To get started running Storj locally, download and install the latest release of Go (at least Go 1.13) at [golang.org ](https://golang.org ).
2018-04-17 14:38:31 +01:00
2018-10-30 00:36:17 +00:00
You will also need [Git ](https://git-scm.com/ ). (`brew install git`, `apt-get install git` , etc).
If you're building on Windows, you also need to install and have [gcc ](https://gcc.gnu.org/install/binaries.html ) setup correctly.
2018-04-17 14:18:36 +01:00
2018-10-30 00:36:17 +00:00
We support Linux, Mac, and Windows operating systems. Other operating systems supported by Go should also be able to run Storj.
2018-08-10 16:28:38 +01:00
2018-08-26 17:38:38 +01:00
### Download and compile Storj
2018-08-23 08:05:56 +01:00
2018-10-30 10:11:21 +00:00
> **Aside about GOPATH**: Go 1.11 supports a new feature called Go modules,
2018-08-26 17:38:38 +01:00
> and Storj has adopted Go module support. If you've used previous Go versions,
> Go modules no longer require a GOPATH environment variable. Go by default
> falls back to the old behavior if you check out code inside of the directory
> referenced by your GOPATH variable, so make sure to use another directory,
> `unset GOPATH` entirely, or set `GO111MODULE=on` before continuing with these
2018-10-30 00:36:17 +00:00
> instructions.
2018-10-30 01:50:38 +00:00
First, fork our repo and clone your copy of our repository.
2018-08-23 08:05:56 +01:00
```bash
2018-10-30 01:50:38 +00:00
git clone git@github.com:< your-username > /storj storj
2018-08-23 08:05:56 +01:00
cd storj
2018-07-19 20:48:51 +01:00
```
2018-04-17 14:18:36 +01:00
2018-10-30 00:36:17 +00:00
Then, let's install Storj.
2018-04-17 16:26:54 +01:00
2018-07-19 20:48:51 +01:00
```bash
2018-10-30 00:36:17 +00:00
go install -v ./cmd/...
2018-07-19 20:48:51 +01:00
```
2018-04-27 13:53:46 +01:00
2018-10-30 01:50:38 +00:00
### Make changes and test
2018-10-30 00:36:17 +00:00
2018-10-30 01:50:38 +00:00
Make the changes you want to see! Once you're done, you can run all of the unit tests:
2018-08-01 22:18:09 +01:00
2018-07-31 18:13:32 +01:00
```bash
2018-08-26 17:38:38 +01:00
go test -v ./...
2018-07-31 18:13:32 +01:00
```
2018-10-30 00:36:17 +00:00
You can also execute only a single test package if you like. For example:
2019-09-19 20:56:34 +01:00
`go test ./pkg/identity` . Add `-v` for more informations about the executed unit
2018-08-26 17:38:38 +01:00
tests.
2018-04-06 17:32:34 +01:00
2018-10-30 01:50:38 +00:00
### Push up a pull request
2018-10-30 00:36:17 +00:00
2018-10-30 01:50:38 +00:00
Use Git to push your changes to your fork:
2018-08-29 16:28:29 +01:00
```bash
2018-10-30 01:50:38 +00:00
git commit -a -m 'my changes!'
2020-12-28 21:59:06 +00:00
git push origin main
2018-08-29 16:28:29 +01:00
```
2018-10-30 01:50:38 +00:00
Use Github to open a pull request!
2020-03-26 00:53:11 +00:00
### A Note about Versioning
2021-04-09 23:25:25 +01:00
While we are practicing [semantic versioning ](https://semver.org/ ) for our client
libraries such as [uplink ](https://github.com/storj/uplink ), we are *not* practicing
semantic versioning in this repo, as we do not intend for it to be used via
[Go modules ](https://blog.golang.org/using-go-modules ). We may have
2020-03-26 00:53:11 +00:00
backwards-incompatible changes between minor and patch releases in this repo.
2018-10-30 01:50:38 +00:00
# Start using Storj
2018-08-29 16:28:29 +01:00
2018-12-30 02:02:55 +00:00
Our wiki has [documentation and tutorials ](https://github.com/storj/storj/wiki ).
2018-10-30 01:50:38 +00:00
Check out these three tutorials:
2018-08-29 16:28:29 +01:00
2018-12-30 02:02:55 +00:00
* [Using the Storj Test Network ](https://github.com/storj/storj/wiki/Test-network )
* [Using the Uplink CLI ](https://github.com/storj/storj/wiki/Uplink-CLI )
* [Using the S3 Gateway ](https://github.com/storj/storj/wiki/S3-Gateway )
2018-08-29 16:28:29 +01:00
# License
2018-10-25 08:02:52 +01:00
The network under construction (this repo) is currently licensed with the
[AGPLv3 ](https://www.gnu.org/licenses/agpl-3.0.en.html ) license. Once the network
reaches beta phase, we will be licensing all client-side code via the
2018-08-29 16:28:29 +01:00
[Apache v2 ](https://www.apache.org/licenses/LICENSE-2.0 ) license.
2018-10-30 01:50:38 +00:00
For code released under the AGPLv3, we request that contributors sign our
[Contributor License Agreement (CLA) ](https://docs.google.com/forms/d/e/1FAIpQLSdVzD5W8rx-J_jLaPuG31nbOzS8yhNIIu4yHvzonji6NeZ4ig/viewform ) so that we can relicense the
2018-08-29 16:28:29 +01:00
code under Apache v2, or other licenses in the future.
# Support
2018-04-06 17:32:34 +01:00
2018-08-26 17:38:38 +01:00
If you have any questions or suggestions please reach out to us on
2021-04-09 23:25:25 +01:00
[our community forum ](https://forum.storj.io/ ) or file a ticket at
https://support.storj.io/.