2018-08-20 20:46:45 +01:00
# Storj V3 Network
2018-04-06 17:32:34 +01:00
2018-06-26 12:48:02 +01:00
[![Go Report Card ](https://goreportcard.com/badge/github.com/storj/storj )](https://goreportcard.com/report/github.com/storj/storj)
2018-04-06 17:32:34 +01:00
[![Go Doc ](https://img.shields.io/badge/godoc-reference-blue.svg?style=flat-square )](http://godoc.org/github.com/storj/storj)
2018-06-26 12:48:02 +01:00
[![Coverage Status ](https://coveralls.io/repos/github/storj/storj/badge.svg?branch=master )](https://coveralls.io/github/storj/storj?branch=master)
2018-04-06 17:32:34 +01:00
2018-08-06 18:39:20 +01:00
< img src = "https://github.com/storj/storj/raw/master/logo/logo.png" width = "100" >
2018-04-06 17:32:34 +01:00
2018-07-29 19:53:27 +01:00
Storj is in the midst of a rearchitecture. Please stay tuned for our v3 whitepaper!
2018-04-06 17:32:34 +01:00
----
2018-07-29 19:53:27 +01:00
Storj is a platform, token, and suite of decentralized applications that allows you to store data in a secure and decentralized manner. Your files are encrypted, shredded into little pieces and stored in a global decentralized network of computers. Luckily, we also support allowing you (and only you) to recover them!
2018-04-06 17:32:34 +01:00
2018-08-17 20:05:03 +01:00
## Table of Contents
- [Storj CLI ](#storjcli )
- [AWS S3 CLI ](#awss3cli )
- [Run Storj Locally ](#storjlocal )
- [Support ](#support )
2018-08-10 16:28:38 +01:00
# Start Using Storj
2018-08-17 20:05:03 +01:00
#### Download the latest release
2018-08-10 16:28:38 +01:00
Go here to download the latest build
// TODO: add link when a build is released
// TODO for how to run the release
2018-08-17 20:05:03 +01:00
## Using Storj via the Storj CLI <a name="storjcli"></a>
#### Configure the Storj CLI
1) In a new terminal setup the Storj CLI: ```$ storj setup```
2) Edit the API Key, overlay address, and pointer db address fields in the Storj CLI config file located at ```~/.storj/cli/config.yaml``` with values from the captplanet config file located at ```~/.storj/capt/config.yaml```
#### Test out some Storj CLI commands!
1) Create a bucket: ```$ storj mb s3://bucket-name```
2) Upload an object: ```$ storj cp ~/Desktop/your-large-file.mp4 s3://bucket-name```
3) List objects in a bucket: ```$ storj ls s3://bucket-name/ ```
4) Download an object: ```$ storj cp s3://bucket-name/your-large-file.mp4 ~/Desktop/your-large-file.mp4```
6) Delete an object: ```$ storj rm s3://bucket-name/your-large-file.mp4```
---
2018-08-10 16:28:38 +01:00
2018-08-17 20:05:03 +01:00
## Using Storj via the AWS S3 CLI <a name="awss3cli"></a>
2018-08-10 16:28:38 +01:00
2018-08-17 20:05:03 +01:00
#### Configure AWS CLI
2018-08-10 16:28:38 +01:00
2018-08-17 20:05:03 +01:00
Download and install the AWS S3 CLI: https://docs.aws.amazon.com/cli/latest/userguide/installing.html
In a new terminal session configure the AWS S3 CLI:
2018-08-10 16:28:38 +01:00
```bash
$ aws configure
AWS Access Key ID [None]: insecure-dev-access-key
AWS Secret Access Key [None]: insecure-dev-secret-key
Default region name [None]: us-east-1
Default output format [None]:
$ aws configure set default.s3.multipart_threshold 1TB # until we support multipart
```
2018-08-17 20:05:03 +01:00
#### Test out some AWS S3 CLI commands!
2018-08-10 16:28:38 +01:00
2018-08-17 20:05:03 +01:00
1) Create a bucket: ```$ aws s3 --endpoint=http://localhost:7777/ mb s3://bucket-name```
2) Upload an object: ```$ aws s3 --endpoint=http://localhost:7777/ cp ~/Desktop/your-large-file.mp4 s3://bucket-name```
3) List objects in a bucket: ```$ aws s3 --endpoint=http://localhost:7777/ ls s3://bucket-name/ ```
4) Download an object: ```$ aws s3 --endpoint=http://localhost:7777/ cp s3://bucket-name/your-large-file.mp4 ~/Desktop/your-large-file.mp4```
5) Generate a URL for an object: ``` $ aws s3 --endpoint=http://localhost:7777/ presign s3://bucket-name/your-large-file.mp4```
6) Delete an object: ```$ aws s3 --endpoint=http://localhost:7777/ rm s3://bucket-name/your-large-file.mp4```
2018-08-10 16:28:38 +01:00
For more information about the AWS s3 CLI visit: https://docs.aws.amazon.com/cli/latest/reference/s3/index.html
2018-08-17 20:05:03 +01:00
# Start Contributing to Storj <a name="storjlocal"></a>
2018-04-06 17:32:34 +01:00
2018-07-19 20:48:51 +01:00
### Install required packages
2018-04-17 14:38:31 +01:00
2018-08-10 16:28:38 +01:00
First, install git and golang. We currently support Debian-based and Mac operating systems
2018-04-17 14:38:31 +01:00
2018-07-19 20:48:51 +01:00
#### Debian based (like Ubuntu)
2018-04-17 14:18:36 +01:00
2018-08-10 16:28:38 +01:00
Download and install the latest release of go https://golang.org/
2018-08-17 20:05:03 +01:00
```
2018-07-27 17:29:45 +01:00
apt-get install git golang
2018-08-01 22:18:09 +01:00
echo 'export STORJDEV="$HOME/storj"' >> $HOME/.bashrc
echo 'export GOPATH="$STORJDEV:$STORJDEV/vendor"' >> $HOME/.bashrc
echo 'export PATH="$PATH:$STORJDEV/bin"' >> $HOME/.bashrc
2018-07-19 20:48:51 +01:00
source $HOME/.bashrc
```
2018-04-17 14:18:36 +01:00
2018-07-19 20:48:51 +01:00
#### Mac OSX
```bash
2018-07-27 17:29:45 +01:00
brew install git go
2018-07-19 20:48:51 +01:00
if test -e $HOME/.bash_profile
then
2018-08-01 22:18:09 +01:00
echo 'export STORJDEV="$HOME/storj"' >> $HOME/.bash_profile
echo 'export GOPATH="$STORJDEV:$STORJDEV/vendor"' >> $HOME/.bash_profile
echo 'export PATH="$PATH:$STORJDEV/bin"' >> $HOME/.bash_profile
2018-07-19 20:48:51 +01:00
source $HOME/.bash_profile
else
2018-08-01 22:18:09 +01:00
echo 'export STORJDEV="$HOME/storj"' >> $HOME/.profile
echo 'export GOPATH="$STORJDEV:$STORJDEV/vendor"' >> $HOME/.profile
echo 'export PATH="$PATH:$STORJDEV/bin"' >> $HOME/.profile
2018-07-19 20:48:51 +01:00
source $HOME/.profile
fi
```
2018-04-17 14:38:31 +01:00
2018-08-23 08:05:56 +01:00
#### Windows
Windows requires go1.11 or newer.
```bash
git clone git@github.com:storj/storj storj
cd storj
go install ./cmd/...
captplanet setup
captplanet run
```
2018-07-19 20:48:51 +01:00
### Install storj
2018-04-27 13:53:46 +01:00
2018-07-19 20:48:51 +01:00
Clone the storj repository. You may want to clone your own fork and branch.
```bash
2018-08-01 22:18:09 +01:00
mkdir -p $STORJDEV/src/storj.io
git clone https://github.com/storj/storj $STORJDEV/src/storj.io/storj
2018-07-19 20:48:51 +01:00
```
2018-04-17 14:18:36 +01:00
2018-08-17 20:05:03 +01:00
### Install all dependencies
2018-04-17 16:26:54 +01:00
2018-07-19 20:48:51 +01:00
```bash
2018-08-01 22:18:09 +01:00
git clone --recursive https://github.com/storj/storj-vendor $STORJDEV/vendor
rm -rf $STORJDEV/vendor/src/github.com/minio/minio/vendor/github.com/minio/cli
2018-08-03 19:33:53 +01:00
rm -rf $STORJDEV/vendor/src/github.com/minio/minio/vendor/golang.org/x/net/trace
2018-07-19 20:48:51 +01:00
```
2018-04-27 13:53:46 +01:00
2018-07-27 17:29:45 +01:00
### Start the network
2018-04-06 17:32:34 +01:00
2018-07-19 20:48:51 +01:00
```bash
2018-07-31 18:13:32 +01:00
$ go install -v storj.io/storj/cmd/captplanet
$ captplanet setup
$ captplanet run
```
2018-08-10 16:28:38 +01:00
### Try out some commands via Storj CLI or AWS CLI
2018-07-31 18:13:32 +01:00
2018-08-10 16:28:38 +01:00
### Run unit tests
2018-08-01 22:18:09 +01:00
2018-07-31 18:13:32 +01:00
```bash
2018-08-10 16:28:38 +01:00
go test storj.io/storj/...
2018-07-31 18:13:32 +01:00
```
2018-08-10 16:28:38 +01:00
You can execute only a single test package. For example: `go test storj.io/storj/pkg/kademlia` . Add -v for more informations about the executed unit tests.
2018-04-06 17:32:34 +01:00
2018-08-17 20:05:03 +01:00
## Support <a name="support"></a>
2018-04-06 17:32:34 +01:00
2018-08-01 22:18:09 +01:00
If you have any questions or suggestions please reach out to us on [Rocketchat ](https://community.storj.io/ ) or [Twitter ](https://twitter.com/storjproject ).