a4bb03d0da
* begins adding inline segment support for segmentstore * adds PeekThresholdReader struct plus Read and isInline methods * moves PeekThresholdReader to peek.go, adds more simplified Read function * adds PeekThresholdReader tests * reverts Read function to earlier version, updates tests to use ReadFull instead * Get function now handles inline type pointers * adds correct type Size and ExpirationDate to inline segment * fixes return value in Put func error condition * moves thresholdBuf and Read tests into a table test * adds border case test, fixes redundant parts * passes sizedReader size to makeRemotePointer |
||
---|---|---|
cmd | ||
docs | ||
examples | ||
internal | ||
logo | ||
pkg | ||
pointerdb/auth | ||
protos | ||
scripts | ||
static | ||
storage | ||
test | ||
.clabot | ||
.gitignore | ||
.travis.yml | ||
docker-compose.yaml | ||
go.mod | ||
Gopkg.lock | ||
Gopkg.toml | ||
index.html | ||
Jenkinsfile | ||
LICENSE | ||
Makefile | ||
README.md |
Storj
Storj is in the midst of a rearchitecture. Please stay tuned for our v3 whitepaper!
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!
To start developing
Install required packages
First of all, install git
and golang
.
Debian based (like Ubuntu)
apt-get install git golang
echo 'export GOPATH="$HOME/go"' >> $HOME/.bashrc
echo 'export PATH="$PATH:${GOPATH//://bin:}/bin"' >> $HOME/.bashrc
source $HOME/.bashrc
Mac OSX
brew install git go
if test -e $HOME/.bash_profile
then
echo 'export GOPATH="$HOME/go"' >> $HOME/.bash_profile
echo 'export PATH="$PATH:${GOPATH//://bin:}/bin"' >> $HOME/.bash_profile
source $HOME/.bash_profile
else
echo 'export GOPATH="$HOME/go"' >> $HOME/.profile
echo 'export PATH="$PATH:${GOPATH//://bin:}/bin"' >> $HOME/.profile
source $HOME/.profile
fi
Install storj
Clone the storj repository. You may want to clone your own fork and branch.
git clone https://github.com/storj/storj $GOPATH/src/storj.io/storj
Install all dependencies
go get
can be used to install all dependencies. The execution will take some time. You can add -v if you want to get more feedback.
go get -t storj.io/storj/...
Fix error message cannot use "github.com/minio/cli"
and panic: http: multiple registrations for /debug/requests
See https://github.com/minio/minio/issues/5974 for more details.
rm -rf $GOPATH/src/github.com/minio/minio/vendor/github.com/minio/cli
rm -rf $GOPATH/src/github.com/minio/minio/vendor/golang.org/x/net/trace
go get -t storj.io/storj/...
Run unit tests
go clean -testcache
go test storj.io/storj/...
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.
Start the network
$ go install -v storj.io/storj/cmd/captplanet
$ captplanet setup
$ captplanet run
Configure AWS CLI
$ 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
Do an upload
$ aws s3 --endpoint=http://localhost:7777/ cp large-file s3://bucket/large-file
Support
If you need support, start with the [troubleshooting guide], and work your way through the process that we've outlined.
That said, if you have any questions or suggestions please reach out to us on rocketchat or twitter.