GithubHelp home page GithubHelp logo

storj / storj Goto Github PK

View Code? Open in Web Editor NEW
2.9K 100.0 382.0 149.66 MB

Ongoing Storj v3 development. Decentralized cloud object storage that is affordable, easy to use, private, and secure.

Home Page: https://storj.io

License: GNU Affero General Public License v3.0

Makefile 0.17% Go 76.67% Shell 1.07% Dockerfile 0.02% JavaScript 0.26% HTML 1.96% Vue 12.95% TypeScript 5.83% CSS 0.02% Python 0.05% C# 0.17% Rich Text Format 0.48% Batchfile 0.02% SCSS 0.20% Svelte 0.07% Earthly 0.04%
distributed-storage distributed-systems distributed storage object-storage golang open-source

storj's Introduction

Storj logo

Storj V3 Network

Go Report Card Go Doc Coverage Status

Storj is building a distributed cloud storage network. Check out our white paper for more info!


Storj is an S3-compatible platform and suite of distributed applications that allows you to store data in a secure and distributed manner. Your files are encrypted, broken into little pieces and stored in a global distributed network of computers. Luckily, we also support allowing you (and only you) to retrieve those files!

Table of Contents

Contributing to Storj

All of our code for Storj v3 is open source. If anything feels off, or if you feel that some functionality is missing, please check out the contributing page. There you will find instructions for sharing your feedback, building the tool locally, and submitting pull requests to the project.

A Note about Versioning

While we are practicing semantic versioning for our client libraries such as uplink, we are not practicing semantic versioning in this repo, as we do not intend for it to be used via Go modules. We may have backwards-incompatible changes between minor and patch releases in this repo.

Start using Storj

Our wiki has documentation and tutorials. Check out these three tutorials:

License

This repository is currently licensed with the AGPLv3 license.

For code released under the AGPLv3, we request that contributors sign our updated Contributor License Agreement (CLA) v2 so that we can relicense the code under Apache v2, or other licenses in the future.

Support

If you have any questions or suggestions please reach out to us on our community forum or file a ticket at https://support.storj.io/.

storj's People

Contributors

bryanchriswhite avatar cam-a avatar coyle avatar crawter avatar dlamarmorgan avatar egonelbre avatar elek avatar ethanadams avatar fadila82 avatar ifraixedes avatar isaachess avatar jenlij avatar jessicagreben avatar jewharton avatar jtolio avatar kaloyan-raev avatar littleskunk avatar mniewrzal avatar mobyvb avatar navillasa avatar nikolaiyurchenko avatar profclems avatar qweder93 avatar rikysya avatar stefanbenten avatar thepaul avatar vinozzz avatar vitaliishpital avatar wilfred-asomanii avatar zeebo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

storj's Issues

Storage Nodes should reject clients who send them data too slowly


๐Ÿ‘‹ Hey! This is an issue that Storj would love the community's help on. If you have any questions about how to get started or want to discuss further, add a comment. Likewise, if you want to jump in, say so below. PRs accepted! ๐Ÿ˜„

When a Client is sending data to a Storage Node very slowly they actually might be attacking that Storage Node. This is a denial of service attack called 'SlowLoris'. A Slowloris attack tries to keep as many connections open as possible for as long as possible so that the person being attacked runs out of available open connections.

Storage nodes must be able to defend against clients who are attempting to Slowloris attack them but closing connections with those clients automatically.

https://en.wikipedia.org/wiki/Slowloris_(computer_security)

Error creating tables for master database on storagenode - database is locked

I got stuck while following the installation instructions for installing a v3 node. Running docker logs -t storagenode displays the following error:

2019-03-21T22:49:54.402924846Z Configuration saved to: /app/config/config.yaml
2019-03-21T22:49:54.412200708Z 2019-03-21T22:49:54.411Z INFO    Configuration loaded from: /app/config/config.yaml
2019-03-21T22:49:54.436773483Z 2019-03-21T22:49:54.436Z INFO    Operator email: [email protected]
2019-03-21T22:49:54.437076271Z 2019-03-21T22:49:54.437Z INFO    Operator wallet: 0xSOMETHINGSOMETHINGSOMETHINGSOMETHING
2019-03-21T22:49:59.584742192Z Error creating tables for master database on storagenode: migrate: creating version table failed: migrate: database is locked
2019-03-21T22:49:59.587425278Z  storj.io/storj/internal/migrate.(*Migration).Run:106
2019-03-21T22:49:59.587447410Z  storj.io/storj/storagenode/storagenodedb.(*DB).CreateTables:83
2019-03-21T22:49:59.587454238Z  main.cmdRun:143
2019-03-21T22:49:59.587460039Z  storj.io/storj/pkg/process.cleanup.func1:241
2019-03-21T22:49:59.587465834Z  storj.io/storj/vendor/github.com/spf13/cobra.(*Command).execute:762
2019-03-21T22:49:59.587471635Z  storj.io/storj/vendor/github.com/spf13/cobra.(*Command).ExecuteC:852
2019-03-21T22:49:59.587477403Z  storj.io/storj/vendor/github.com/spf13/cobra.(*Command).Execute:800
2019-03-21T22:49:59.587483197Z  storj.io/storj/pkg/process.Exec:43
2019-03-21T22:49:59.587528094Z  main.main:313
2019-03-21T22:49:59.587536968Z  runtime.main:201

It is running in a (bhyve) virtual machine. Docker works fine for other applications. The storage directory is located in a cifs share mounted on /mnt/storj (using fstab). It doesn't seem to be a permission issue, the files are created just fine:

robin@ubuntu4:/mnt/storj# tree
โ”œโ”€โ”€ data
โ”‚ย ย  โ”œโ”€โ”€ config.yaml
โ”‚ย ย  โ”œโ”€โ”€ kademlia
โ”‚ย ย  โ””โ”€โ”€ storage
โ”‚ย ย      โ””โ”€โ”€ piecestore.db
โ””โ”€โ”€ identity
    โ”œโ”€โ”€ ca.1553208060.cert
    โ”œโ”€โ”€ ca.cert
    โ”œโ”€โ”€ ca.key
    โ”œโ”€โ”€ identity.1553208060.cert
    โ”œโ”€โ”€ identity.cert
    โ””โ”€โ”€ identity.key

Error could not find satellite


2019-03-24T12:17:28.063301394Z 2019-03-24T12:17:28.051Z INFO    Configuration loaded from: /app/config/config.yaml
2019-03-24T12:17:28.079751283Z 2019-03-24T12:17:28.065Z INFO    Operator email: [email protected]
2019-03-24T12:17:28.079757953Z 2019-03-24T12:17:28.065Z INFO    Operator wallet: 0x55cca8573c017752c64e8b5ce432a39c7fdd43e4
2019-03-24T12:17:28.228351399Z 2019-03-24T12:17:28.228Z INFO    db.migration    Latest Version  {"version": 3}
2019-03-24T12:17:28.798427484Z 2019-03-24T12:17:28.798Z INFO    piecestore      Remaining Bandwidth     {"bytes": 9999999969753160}
2019-03-24T12:17:28.798686188Z 2019-03-24T12:17:28.798Z INFO    Node 12pLjEegtDJ41tjw5iEQgjJ9ftgeo8MVpaaGUWbvv4GiJ7QGxNP started
2019-03-24T12:17:28.798700632Z 2019-03-24T12:17:28.798Z INFO    Public server started on 12pLjEegtDJ41tjw5iEQgjJ9ftgeo8MVpaaGUWbvv4GiJ7QGxNP%!(EXTRA string=[::]:28967)
2019-03-24T12:17:28.798707523Z 2019-03-24T12:17:28.798Z INFO    Private server started on 12pLjEegtDJ41tjw5iEQgjJ9ftgeo8MVpaaGUWbvv4GiJ7QGxNP%!(EXTRA string=127.0.0.1:7778)
2019-03-24T12:17:28.798920375Z 2019-03-24T12:17:28.798Z INFO    agreements      sending agreements to satellite {"number of agreements": 7, "satellite id": "12ZcfoB9K2Ko4B84oKvfJqFkxKkNDSeFjTYLTAMXyf2RFhURV5i"}
2019-03-24T12:17:28.854706326Z 2019-03-24T12:17:28.854Z INFO    piecestore      Successfully retrieved Stats...
2019-03-24T12:17:35.581031628Z 2019-03-24T12:17:35.580Z WARN    agreements      could not find satellite        {"error": "node not found", "errorVerbose": "node not found\n\tstorj.io/storj/pkg/kademlia.(*Kademlia).lookup:310\n\tstorj.io/storj/pkg/kademlia.(*Kademlia).FindNode:267\n\tstorj.io/storj/pkg/piecestore/psserver/agreementsender.(*AgreementSender).SettleAgreements:88\n\tstorj.io/storj/pkg/piecestore/psserver/agreementsender.(*AgreementSender).Run.func1:65\n\tstorj.io/storj/vendor/golang.org/x/sync/errgroup.(*Group).Go.func1:57"}

What's wrong?

uplink hangs on malformed url

To reproduce, invoke uplink with single slash after protocol descriptor

uplink cp ~/keybase_amd64.deb sj:/foo/keybase_amd64.deb

Notice that 'sj:/foo' should be 'sj://foo'

The command works correctly when URL is correctly formed.

Local build on Ubuntu 18.04.1

14:58 $ git log -1
commit 273c3924ca9d6a3b6effebded89ea2e8a08d00e7 (HEAD -> master, origin/master, origin/HEAD)
Author: Bill Thorp <[email protected]>
Date: Fri Jan 11 13:15:49 2019 -0500

Makefile broken on FreeBSD

Please add FreeBSD support for storj-sdk v3

Here is the problem with build storj-sdk v3 network on FreeBSD:

  • install latest Go language for freebsd
    wget https://dl.google.com/go/go1.11.4.freebsd-amd64.tar.gz
    tar -xvf go1.11.4.freebsd-amd64.tar.gz
    sudo mv go /usr/local

  • Setup Go Enviroment
    Open your .profilefile and add global variable as follow at the end of the file. You may want to add this intoย .zshrcย or.bashrcย file as per your shell configuration.

export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
  • Update current shell session
    source ~/.profile

  • Verify Installation
    go version

go version go1.11.4 freebsd/amd64

go env

GOARCH="amd64"
GOBIN=""
GOCACHE="/home/storj/.cache/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="freebsd"
GOOS="freebsd"
GOPATH="/home/storj/go"
GOPROXY=""
GORACE=""
GOROOT="/usr/local/go"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/freebsd_amd64"
GCCGO="gccgo"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/home/storj/storj/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build436043875=/tmp/go-build -gno-record-gcc-switches"

git clone https://github.com/storj/storj.git storj
cd storj
make install-sim
  • Got Error

make: "/usr/home/storj/storj/Makefile" line 6: Missing dependency operator
make: "/usr/home/storj/storj/Makefile" line 8: Need an operator
make: "/usr/home/storj/storj/Makefile" line 10: Need an operator
make: "/usr/home/storj/storj/Makefile" line 14: Missing dependency operator
make: "/usr/home/storj/storj/Makefile" line 16: Need an operator
make: "/usr/home/storj/storj/Makefile" line 216: Missing dependency operator
make: "/usr/home/storj/storj/Makefile" line 222: Need an operator
make: "/usr/home/storj/storj/Makefile" line 224: warning: duplicate script for target "clean-images" ignored
make: "/usr/home/storj/storj/Makefile" line 221: warning: using previous script for "clean-images" defined here
make: "/usr/home/storj/storj/Makefile" line 225: warning: duplicate script for target "clean-images" ignored
make: "/usr/home/storj/storj/Makefile" line 221: warning: using previous script for "clean-images" defined here
make: "/usr/home/storj/storj/Makefile" line 226: warning: duplicate script for target "clean-images" ignored
make: "/usr/home/storj/storj/Makefile" line 221: warning: using previous script for "clean-images" defined here
make: "/usr/home/storj/storj/Makefile" line 227: warning: duplicate script for target "clean-images" ignored
make: "/usr/home/storj/storj/Makefile" line 221: warning: using previous script for "clean-images" defined here
make: "/usr/home/storj/storj/Makefile" line 228: Need an operator
make: Fatal errors encountered -- cannot continue
make: stopped in /usr/home/storj/storj

Multipart upload - review-adjust-fix piecestore database data layout


๐Ÿ‘‹ Hey! This is an issue that Storj would love the community's help on. If you have any questions about how to get started or want to discuss further, add a comment. Likewise, if you want to jump in, say so below. PRs accepted! ๐Ÿ˜„

Switch out piecestore directory handling in favor of storage/filestore and storage.Blobs interface.

S/Kademlia extensions - Secured routing table maintenance


๐Ÿ‘‹ Hey! This is an issue that Storj would love the community's help on. If you have any questions about how to get started or want to discuss further, add a comment. Likewise, if you want to jump in, say so below. PRs accepted! ๐Ÿ˜„

Implement the secure routing table maintenance S/Kademlia extension our Go library, changing nodes if possible and where appropriate

This ticket will require that we have signed and secure node-to-node communication, either via TLS with client certs or something else

  • [http://www.spovnet.de/files/publications/SKademlia2007.pdf]

Acceptance Criteria:

  1. Our Go Kad implementation is resistant to the attacks S/Kademlia mitigates

[https://storj-labs.mingle.thoughtworks.com/projects/team_rocket/cards/92]

(Question/Feature Request) Multiple Owners/Advanced File Permissions

I apologize if this is not the place to ask this.

Suppose I have a file which I would like multiple people to have access to, with each person having different permissions (e.g. Person A can modify, Person B can only read, Person C can read but only for a set duration after which they lose access). Is this currently (or planned to be) implemented in Storj?

Create a Storj backed IPFS node

๐Ÿ‘‹ Hey! This is an issue that Storj would love the community's help on. If you have any questions about how to get started or want to discuss further, add a comment. Likewise, if you want to jump in, say so below. PRs accepted! ๐Ÿ˜„


Job Story:
When I pin data on IPFS, I want it to save and serve the data from the Storj Network so that it does not happen from my local computer. The goal is to be an IPFS node that does not store any data locally. It can use libstorj/bucket store to save and serve IPFS data you pin using the Storj Network.

This service should run on the customer side, not on the storage node side. This would mean that the customer is paying for the service. The service can be named something like ipfs-gateway

INFO process/exec_conf.go:177 tls overwrite disabled error: certificates and keys exist; refusing to create without overwrite

Hello friends,

When I'm running the commando "captplanet setup" I get this error:

2018-08-08T06:36:30.764-0400 INFO process/exec_conf.go:177 tls overwrite disabled error: certificates and keys exist; refusing to create without overwrite
storj.io/storj/pkg/peertls.(*TLSFileOptions).EnsureExists:72
storj.io/storj/pkg/peertls.NewTLSFileOptions:123
main.cmdSetup:51
storj.io/storj/pkg/process.cleanup.func1:175
github.com/spf13/cobra.(*Command).execute:762
github.com/spf13/cobra.(*Command).ExecuteC:852
github.com/spf13/cobra.(*Command).Execute:800
storj.io/storj/pkg/process.Exec:34
main.main:31
runtime.main:198

There is an option where I can allow the overwrite? it should be allowed?

Thanks

Thousands of empty folders - cleanup needed?

I noticed that for 7.7GB stored, I currently have over 98000 items, most of which seem to be empty folders. Are these needed for a reason? Are they created when files are stored and then left behind when files are deleted?

As the amount of storage scales up I'm worried about potentially millions of empty folders. Can something be done about this?

S3 Gateway running error

As instructed in https://github.com/storj/storj/wiki/S3-Gateway test-network setup was successful.
But when trying to run it by ~/go/bin/gateway run --address :7776 it gives

Error: unknown flag: --address

Then going for gateway run
it shows

Uplink configuration error: failed to connect to overlay: transport error: connection error: desc = "transport: error while dialing: dial tcp 127.0.0.1:7778: connect: connection refused"

S3 Gateway setup error

I wanted to try the S3 gateway, so I executed

gateway setup --api-key abc123 --satellite-addr 127.0.0.1:7778 \
  --enc-key highlydistributedridiculouslyresilient

successfully.
Next, when I tried to execute

gateway run --address :7776

it came out with:

FATAL	file or directory not found error: open /home/<my-username>/.local/share/storj/identity/gateway/identity.cert: no such file or directory

storj/src/storj.io/storj/pkg/kademlia/config.go:7:2: cannot find package "context" in any of:

Hello friends,

I'm trying to run the test and I'm getting the next message:

storj@storj:~$ go test storj.io/storj/...
storj/src/storj.io/storj/pkg/kademlia/config.go:7:2: cannot find package "context" in any of:
/usr/lib/go-1.6/src/context (from $GOROOT)
/home/alebeta/storj/src/context (from $GOPATH)
/home/alebeta/storj/vendor/src/context

I'm running the node on Ubuntu Server 16.04 up to date.

Let me know if you need more logs or information.

Kind Regards,
Alebeta

S/Kademlia extensions - make sure rest of s/kad is implemented


๐Ÿ‘‹ Hey! This is an issue that Storj would love the community's help on. If you have any questions about how to get started or want to discuss further, add a comment. Likewise, if you want to jump in, say so below. PRs accepted! ๐Ÿ˜„

Implement the remainingS/Kademlia extensions in our Go library, changing nodes if possible and where appropriate

Acceptance Criteria:

  • Our Go Kad implementation is resistant to the attacks S/Kademlia mitigates

Multipart upload - Add the ability to continue multipart uploads


๐Ÿ‘‹ Hey! This is an issue that Storj would love the community's help on. If you have any questions about how to get started or want to discuss further, add a comment. Likewise, if you want to jump in, say so below. PRs accepted! ๐Ÿ˜„

Our current implementation uses an in-memory implementation of the uploading state. It also writes the parts as a single stream rather than separate segments. However, in case of an error, the whole upload fails.

This causes several problems:

  1. there isnโ€™t a way to continue a failed segment
  2. we are unable to atomically swap out the object based on versions

This needs several enhancements:

  1. Separate namespace for partially uploaded objects
  2. Listing failed segments
  3. Uploading part as a single segment
  4. Supporting varying segment sizes

Also for improved usage:

  1. Versioning support in piecestore
  2. Atomic path swaps in piecestore

FreeBSD support

Please add FreeBSD support for storj v3, because at this moment we have a problem with gosigar package dependendency. This package does not support FreeBSD.

Here is the problem with build test v3 network on FreeBSD:

  • install latest Go language for freebsd
    wget https://dl.google.com/go/go1.11.4.freebsd-amd64.tar.gz
    tar -xvf go1.11.4.freebsd-amd64.tar.gz
    sudo mv go /usr/local

  • Setup Go Enviroment
    Open your .profilefile and add global variable as follow at the end of the file. You may want to add this intoย .zshrcย or.bashrcย file as per your shell configuration.

export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
  • Update current shell session
    source ~/.profile

  • Verify Installation
    go version

go version go1.11.4 freebsd/amd64

go env

GOARCH="amd64"
GOBIN=""
GOCACHE="/home/storj/.cache/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="freebsd"
GOOS="freebsd"
GOPATH="/home/storj/go"
GOPROXY=""
GORACE=""
GOROOT="/usr/local/go"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/freebsd_amd64"
GCCGO="gccgo"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/home/storj/storj/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build436043875=/tmp/go-build -gno-record-gcc-switches"

git clone https://github.com/storj/storj.git storj
cd storj
go install ./cmd/captplanet
  • Got Error

github.com/cloudfoundry/gosigar

../go/pkg/mod/github.com/cloudfoundry/[email protected]/concrete_sigar.go:20:11: cpuUsage.Get undefined (type Cpu has no field or method Get)
../go/pkg/mod/github.com/cloudfoundry/[email protected]/concrete_sigar.go:30:13: cpuUsage.Get undefined (type Cpu has no field or method Get)
../go/pkg/mod/github.com/cloudfoundry/[email protected]/concrete_sigar.go:49:10: l.Get undefined (type LoadAverage has no field or method Get)
../go/pkg/mod/github.com/cloudfoundry/[email protected]/concrete_sigar.go:55:10: m.Get undefined (type Mem has no field or method Get)
../go/pkg/mod/github.com/cloudfoundry/[email protected]/concrete_sigar.go:61:10: s.Get undefined (type Swap has no field or method Get)
../go/pkg/mod/github.com/cloudfoundry/[email protected]/sigar_shared.go:12:20: procTime.Get undefined (type *ProcTime has no field or method Get)
../go/pkg/mod/github.com/cloudfoundry/[email protected]/sigar_unix.go:21:17: cannot use stat.Ffree (type int64) as type uint64 in assignment

If we look into this link you can find similar problem with gosigar package

It looks like https://github.com/cloudfoundry/gosigar is missing FreeBSD support. We can fix this by adding support to the gosigar project or investigating a package/way to obtaining resource information.

I think it would be more simple to just remove the go-sigar dependency and replace it with gopsutil. I have searched and found this solution. I don't know if this is a reliable thing to do.

WARN kademlia

Hi,
got this error today..
2019-04-04T17:36:53.986331600Z 2019-04-04T17:36:53.985Z WARN kademlia Error updating bucket timestamp in kad lookup.

What is this?

internal package not allowed

when i run sh make in project get this errors :

pkg/eestream/decode.go:14:2:error: use of internal package not allowed (vet)
pkg/overlay/test_utils.go:15:2:error: use of internal package not allowed (vet)
pkg/ranger/reader.go:12:2:error: use of internal package not allowed (vet)
  1. how i can fix these?
    update : fix by re get storj.

  2. when run sh vgo install ./... get :

go: import "storj.io/storj/cmd/minio" ->
	import "github.com/minio/minio/cmd" ->
	import "github.com/minio/minio-go/pkg/policy": cannot find module providing package github.com/minio/minio-go/pkg/policy
go: import "storj.io/storj/cmd/minio" ->
	import "github.com/minio/minio/cmd" ->
	import "github.com/minio/minio-go/pkg/set": cannot find module providing package github.com/minio/minio-go/pkg/set
go: import "storj.io/storj/cmd/minio" ->
	import "github.com/minio/minio/cmd" ->
	import "github.com/minio/minio/pkg/madmin" ->
	import "github.com/minio/minio-go/pkg/s3signer": cannot find module providing package github.com/minio/minio-go/pkg/s3signer
go: import "storj.io/storj/cmd/minio" ->
	import "github.com/minio/minio/cmd" ->
	import "github.com/minio/minio/pkg/madmin" ->
	import "github.com/minio/minio-go/pkg/s3utils": cannot find module providing package github.com/minio/minio-go/pkg/s3utils

how i can fix is?

  1. How i can run it ?

thank.

Supress error messages while using mock

My installation starts in a fresh Ubuntu Xenial LXC Container, i did this twice.

I started from scratch with following commands

sudo apt update
sudo apt full-upgrade
sudo apt autoremove 
sudo apt clean
sudo apt install openssh-server git curl nano

wget -q https://storage.googleapis.com/golang/getgo/installer_linux
chmod +x installer_linux 
./installer_linux 

$ Welcome to the Go installer!
$ Downloading Go version go1.11.2 to /home/ubuntu/.go
$ This may take a bit of time...
$ Downloaded!
$ Setting up GOPATH
$ GOPATH has been set up!

$ One more thing! Run `source /home/ubuntu/.bash_profile` to persist the
$ new environment variables to your current session, or open a
$ new shell prompt.

source /home/ubuntu/.bash_profile
go version
$ go version go1.11.2 linux/amd64

git clone https://github.com/storj/storj.git storj
$ Cloning into 'storj'...
$ remote: Enumerating objects: 72, done.
$ remote: Counting objects: 100% (72/72), done.
$ remote: Compressing objects: 100% (60/60), done.
$ remote: Total 7570 (delta 20), reused 40 (delta 7), pack-reused 7498
$ Receiving objects: 100% (7570/7570), 20.35 MiB | 1.86 MiB/s, done.
$ Resolving deltas: 100% (4097/4097), done.
$ Checking connectivity... done.

cd storj
go install ./cmd/captplanet
$ <snip>
$ ....
$ go: downloading github.com/pkg/errors v0.8.0
$ go: downloading github.com/eapache/queue v1.1.0
$ go: downloading github.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273
$ go: downloading github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21
$ go: downloading github.com/mattn/go-colorable v0.0.9
$ go: downloading github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db


captplanet setup
$ <snip>
$ creating identity for storage node 98
$ creating identity for storage node 99
$ creating identity for storage node 100
$ creating identity for uplink

captplanet run

starting storage node 0 fSoUlG1bIPl8aOEP8aycdIcqwOsyzhK8-AycHIFBEAA=:127.0.0.1:7780 (kad on 

127.0.0.1:7781)
starting storage node 1 9IO9g1-gVgs9SJdLWRa-2HDmQDdQ0pEv0_AywOxkkAA=:127.0.0.1:7782 (kad on 

127.0.0.1:7783)
starting storage node 2 09sc94eCE8bBH3MrUmrfzPU-DBPgUlTDLQlfSrkC0AA=:127.0.0.1:7784 (kad on 

127.0.0.1:7785)
starting storage node 3 zbvqg7jPxjMALK30RNDukHVbSau-10l3iwawe0gG8AA=:127.0.0.1:7786 (kad on 

127.0.0.1:7787)
starting storage node 4 gYfOb0DPkSvr5hQCyVLtNnPFuTIaLsrH3_UVUlCA8AA=:127.0.0.1:7788 (kad on 

127.0.0.1:7789)
starting storage node 5 LnYsT-BySxttFu4XaRuZd3l9DydnultaRAhXXw8YgAA=:127.0.0.1:7790 (kad on 

127.0.0.1:7791)
starting storage node 6 kxIxg3512hB3XTP-CMAV1rsQX4KTH9MCYFw_D9XggAA=:127.0.0.1:7792 (kad on 

127.0.0.1:7793)
starting storage node 7 TlQDdDPH_OeoP7zmk3DN7Sjzc990r1yhzS_TIjoNQAA=:127.0.0.1:7794 (kad on 

127.0.0.1:7795)
starting storage node 9 qydT2J4g4nCYc-X3pgszV2Cgt5MmWgT82ctL6h334AA=:127.0.0.1:7798 (kad on 

127.0.0.1:7799)
starting storage node 10 VrUDNUX0q09Tbf5OgX0ZtjakcgkPTEl46odc4Ki3MAA=:127.0.0.1:7800 (kad on 

127.0.0.1:7801)
starting storage node 11 X0JJaIyrIFGvMoKZP5-cEEDiKlHZ-MWA4K6Do71cwAA=:127.0.0.1:7802 (kad on 

127.0.0.1:7803)
starting storage node 8 wXkX0DOiMU_7Xn09ofWx27pw9Z3uwh_10IEV_J3OAAA=:127.0.0.1:7796 (kad on 

127.0.0.1:7797)
starting storage node 13 lf7zKiRnj9Jgseg7FL_BXrj5aHNb2uEvGeTTE-OowAA=:127.0.0.1:7806 (kad on 

127.0.0.1:7807)
starting storage node 12 1r1EskHQPSblVMnXTGHUhMcY782suzpPKrfeHKDNgAA=:127.0.0.1:7804 (kad on 

127.0.0.1:7805)
starting storage node 14 OA51vruTQiExmM_fg_1xFg_2U4hctJD35FQEIgZTQAA=:127.0.0.1:7808 (kad on 

127.0.0.1:7809)
starting storage node 17 UKk0arzKKkQO-Wea02_TMEdPjLtpxKyPwaHXljC0sAA=:127.0.0.1:7814 (kad on 

127.0.0.1:7815)
starting storage node 20 plX4GnRezMnfkgxRVrPFtnHHl_Df9_Qs7lj5GoDTkAA=:127.0.0.1:7820 (kad on 

127.0.0.1:7821)
2018-11-14T10:15:50.939Z        ERROR   Error occurred during lookup of 09sc94eCE8bBH3MrUmrfzPU-

DBPgUlTDLQlfSrkC0AA= :: max retries exceeded for id:: foo :: error = node client error: rpc error: 

code = Unavailable desc = all SubConns are in TransientFailure, latest connection error: 

connection error: desc = "transport: Error while dialing dial tcp 127.0.0.1:7778: connect: 

connection refused"
starting storage node 16 qAAutUfO0eNrCRrHQa2g5j-VeE3v7qKWudRvH9cUYAA=:127.0.0.1:7812 (kad on 

127.0.0.1:7813)
starting storage node 19 GoTJ88wRw9tRKukdDS0Ab_vjlIK63by6l5dnMhLaoAA=:127.0.0.1:7818 (kad on 

127.0.0.1:7819)
starting storage node 18 MMn8pQ6ZvUwTBdaVWHHSXBn-URaN80340if7sferEAA=:127.0.0.1:7816 (kad on 

127.0.0.1:7817)
2018-11-14T10:15:50.939Z        ERROR   Error occurred during lookup of X0JJaIyrIFGvMoKZP5-

cEEDiKlHZ-MWA4K6Do71cwAA= :: max retries exceeded for id:: foo :: error = node client error: rpc 

error: code = Unavailable desc = all SubConns are in TransientFailure, latest connection error: 

connection error: desc = "transport: Error while dialing dial tcp 127.0.0.1:7778: connect: 

connection refused"
starting storage node 15 dVLHIghbO1o0cexGgGy7THw0JHcJUMOOf-cGgpnyIAA=:127.0.0.1:7810 (kad on 

127.0.0.1:7811)
2018-11-14T10:15:50.940Z        ERROR   Error occurred during lookup of X0JJaIyrIFGvMoKZP5-

cEEDiKlHZ-MWA4K6Do71cwAA= :: max retries exceeded for id:: X0JJaIyrIFGvMoKZP5-cEEDiKlHZ-

MWA4K6Do71cwAA= :: error = node client error: rpc error: code = Unavailable desc = all SubConns 

are in TransientFailure, latest connection error: connection error: desc = "transport: Error while 

dialing dial tcp 127.0.0.1:7803: connect: connection refused"

What can i do to get it running.

Executables not found

When I try to execute

./storj-sim network setup

it comes out with

Error: some executables cannot be found: [bootstrap gateway satellite storagenode]

as I'm the folder with all executables needed (~/go/bin)

File editing not working on uplink mounted bucket

I mounted the bucket I created in the storj-sim network via:

uplink --config-dir .local/share/storj/local-network/gateway/0/ mount s3://test /home/<me>/storj-mtest

It works as I see the files and can copy in or out the mounted folder.
But I can't edit or rename the files within that.
I also have problems when trying to read a .avi file with VLC.

The storj-sim network is configured as default.
The gateway used by uplink is the default gateway of the storj-sim network.

Here are my OS specs:

Ubuntu 18.04.1 LTS
Linux 4.15.0-45-generic
x86_64

IPFS import/export tool

๐Ÿ‘‹ Hey! This is an issue that Storj would love the community's help on. If you have any questions about how to get started or want to discuss further, add a comment. Likewise, if you want to jump in, say so below. PRs accepted! ๐Ÿ˜„


Job Story:
When I need to move data from IPFS to Storj or vise versa, I want a tool that automates that process for me so that my data migration can be quick and seamless.

We can enhance the uplink on the Storj Network to have the ability to import data from IPFS to Storj, and export data in Storj to IPFS.

Used powershell with docker to run storj v3 in microsoft windows but it kept restarting.

Hello, every one.
I tried to run with below Microsoft powershell script but the storj v3 kept restarting.
Docker CE 18.09.2 has been install in OS.

docker run -d --restart unless-stopped -p 28967:28967 -e wallet="0x???" -e email="[email protected]" -e address="???.???.???.???:28967" -e bandwidth="2TB" -e storage="3TB" -v "c:\users\shrlu\appdata\roaming\storj\identity\storagenode\":/app/identity -v "g:\data\storj\":/app/config --name storagenode storjlabs/storagenode:alpha

the result would be like below:

PS C:\WINDOWS\system32> docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
76f7201319e5 storjlabs/storagenode:alpha "./entrypoint.sh" 20 seconds ago Restarting (1) 6 seconds ago storagenode

Would some one help me on troubleshooting and solving this issue? : )

ERROR untrusted: satellite and ERROR piecestore protocol: rpc error

2019-04-02T22:52:51.510Z	ERROR	untrusted: satellite "12RvYBbabqTiDrmJckGTuGFWERCq12LX2WSfPr4cNqcTTGuETMq" is untrusted
	storj.io/storj/storagenode/piecestore.(*Endpoint).VerifyOrderLimit:62
	storj.io/storj/storagenode/piecestore.(*Endpoint).Upload:138
	storj.io/storj/pkg/pb._Piecestore_Upload_Handler:602
	storj.io/storj/pkg/server.streamInterceptor:19
	storj.io/storj/vendor/google.golang.org/grpc.(*Server).processStreamingRPC:1182
	storj.io/storj/vendor/google.golang.org/grpc.(*Server).handleStream:1254
	storj.io/storj/vendor/google.golang.org/grpc.(*Server).serveStreams.func1.1:690
2019-04-02T23:09:23.185Z	INFO	agreements	sending agreements to satellite	{"number of agreements": 2, "satellite id": "12RvYBbabqTiDrmJckGTuGFWERCq12LX2WSfPr4cNqcTTGuETMq"}
2019-04-02T23:09:45.483Z	WARN	agreements	could not find satellite	{"satellite id": "12RvYBbabqTiDrmJckGTuGFWERCq12LX2WSfPr4cNqcTTGuETMq", "error": "node not found", "errorVerbose": "node not found\n\tstorj.io/storj/pkg/kademlia.(*Kademlia).lookup:299\n\tstorj.io/storj/pkg/kademlia.(*Kademlia).FindNode:256\n\tstorj.io/storj/pkg/piecestore/psserver/agreementsender.(*AgreementSender).SettleAgreements:88\n\tstorj.io/storj/pkg/piecestore/psserver/agreementsender.(*AgreementSender).Run.func1:65\n\tstorj.io/storj/vendor/golang.org/x/sync/errgroup.(*Group).Go.func1:57"}
2019-04-03T00:09:23.184Z	INFO	agreements	sending agreements to satellite	{"number of agreements": 2, "satellite id": "12RvYBbabqTiDrmJckGTuGFWERCq12LX2WSfPr4cNqcTTGuETMq"}
2019-04-03T00:09:45.152Z	WARN	agreements	could not find satellite	{"satellite id": "12RvYBbabqTiDrmJckGTuGFWERCq12LX2WSfPr4cNqcTTGuETMq", "error": "node not found", "errorVerbose": "node not found\n\tstorj.io/storj/pkg/kademlia.(*Kademlia).lookup:299\n\tstorj.io/storj/pkg/kademlia.(*Kademlia).FindNode:256\n\tstorj.io/storj/pkg/piecestore/psserver/agreementsender.(*AgreementSender).SettleAgreements:88\n\tstorj.io/storj/pkg/piecestore/psserver/agreementsender.(*AgreementSender).Run.func1:65\n\tstorj.io/storj/vendor/golang.org/x/sync/errgroup.(*Group).Go.func1:57"}
2019-04-03T00:36:20.549Z	ERROR	piecestore protocol: rpc error: code = Canceled desc = context canceled
	storj.io/storj/storagenode/piecestore.(*Endpoint).Upload:124
	storj.io/storj/pkg/pb._Piecestore_Upload_Handler:602
	storj.io/storj/pkg/server.streamInterceptor:19
	storj.io/storj/vendor/google.golang.org/grpc.(*Server).processStreamingRPC:1182
	storj.io/storj/vendor/google.golang.org/grpc.(*Server).handleStream:1254
	storj.io/storj/vendor/google.golang.org/grpc.(*Server).serveStreams.func1.1:690
2019-04-03T01:09:23.184Z	INFO	agreements	sending agreements to satellite	{"number of agreements": 2, "satellite id": "12RvYBbabqTiDrmJckGTuGFWERCq12LX2WSfPr4cNqcTTGuETMq"}
2019-04-03T01:09:45.188Z	WARN	agreements	could not find satellite	{"satellite id": "12RvYBbabqTiDrmJckGTuGFWERCq12LX2WSfPr4cNqcTTGuETMq", "error": "node not found", "errorVerbose": "node not found\n\tstorj.io/storj/pkg/kademlia.(*Kademlia).lookup:299\n\tstorj.io/storj/pkg/kademlia.(*Kademlia).FindNode:256\n\tstorj.io/storj/pkg/piecestore/psserver/agreementsender.(*AgreementSender).SettleAgreements:88\n\tstorj.io/storj/pkg/piecestore/psserver/agreementsender.(*AgreementSender).Run.func1:65\n\tstorj.io/storj/vendor/golang.org/x/sync/errgroup.(*Group).Go.func1:57"}
2019-04-03T02:09:23.184Z	INFO	agreements	sending agreements to satellite	{"number of agreements": 2, "satellite id": "12RvYBbabqTiDrmJckGTuGFWERCq12LX2WSfPr4cNqcTTGuETMq"}
2019-04-03T02:09:45.104Z	WARN	agreements	could not find satellite	{"satellite id": "12RvYBbabqTiDrmJckGTuGFWERCq12LX2WSfPr4cNqcTTGuETMq", "error": "node not found", "errorVerbose": "node not found\n\tstorj.io/storj/pkg/kademlia.(*Kademlia).lookup:299\n\tstorj.io/storj/pkg/kademlia.(*Kademlia).FindNode:256\n\tstorj.io/storj/pkg/piecestore/psserver/agreementsender.(*AgreementSender).SettleAgreements:88\n\tstorj.io/storj/pkg/piecestore/psserver/agreementsender.(*AgreementSender).Run.func1:65\n\tstorj.io/storj/vendor/golang.org/x/sync/errgroup.(*Group).Go.func1:57"}
2019-04-03T02:36:18.557Z	ERROR	untrusted: satellite "12RvYBbabqTiDrmJckGTuGFWERCq12LX2WSfPr4cNqcTTGuETMq" is untrusted
	storj.io/storj/storagenode/piecestore.(*Endpoint).VerifyOrderLimit:62

storagenode requires restart when satellite goes offline

While running storjlabs/storagenode:alpha (hash f5421c8370b1 latest at time of writing), the node was up for about 6 days when I noticed the node was OFFLINE.

Storage Node Dashboard

======================

ID     XXXXXXXXXXX
Status OFFLINE
Uptime 157h3m55s

                   Available       Used
     Bandwidth       10.0 TB     1.5 MB
          Disk        8.0 TB     4.2 GB

Bootstrap bootstrap.storj.io:8888
Internal  :28967
External  XXXXXXXXXXX:28967

Neighborhood Size 0

I did a log dump and some questioning on the community support portal and I was told that the bootstrap.storj.io satellite has some issues over the last couple days which was confirmed in the logs.

I believe the storagenode program got into a state where it neither died (and would have been restarted), nor reestablished connection to the satellite (got stuck in a strange state).

Here is the timeline I pieced together from the logs that necessitated a docker container restart:

2019-03-11T21:44:25 Things are running fine. Pieces are flying back and forth:

2019-03-11T21:44:25.636Z	INFO	piecestore	Successfully stored	{"Piece ID": "HN88Rt1UKMERYwhXLCPmKoR9xMxFE4VYmVEPWoQszjRt"}
2019-03-11T21:44:26.184Z	INFO	piecestore	Successfully retrieved	{"Piece ID": "3qKLQd7CnqHKFZ3UFZPeUkLbnb9EQ7kcvTKV5BwSEeHMbftQbgfqQLS5Q5N74cFuw6yAreGFD86QbwWgvZ9pFcYr", "Allocated": 2351104, "Retrieved": 2351104}
2019-03-11T22:01:39.401Z	INFO	piecestore	Successfully retrieved Stats...
2019-03-11T22:01:39.465Z	INFO	agreements	Sending agreements to satellite	{"number of agreements": 6, "satellite id": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6"}

2019-03-11T22:02:21 my node can't connect to the satellite (34.80.85.84), but it must have SOME connectivity based on the following message after the error:

2019-03-11T22:02:21.148Z	WARN	agreements	Agreementsender could not dial satellite	{"error": "transport error: connection error: desc = \"transport: error while dialing: dial tcp 34.80.85.84:7777: connect: connection refused\"", "errorVerbose": "transport error: connection error: desc = \"transport: error while dialing: dial tcp 34.80.85.84:7777: connect: connection refused\"\n\tstorj.io/storj/pkg/transport.(*Transport).DialNode:82\n\tstorj.io/storj/pkg/piecestore/psserver/agreementsender.(*AgreementSender).SendAgreementsToSatellite:75\n\tstorj.io/storj/pkg/piecestore/psserver/agreementsender.(*AgreementSender).Run:54\n\tstorj.io/storj/storagenode.(*Peer).Run.func3:201\n\tstorj.io/storj/vendor/golang.org/x/sync/errgroup.(*Group).Go.func1:57"}
2019-03-11T22:02:21.148Z	INFO	agreements	Sending agreements to satellite	{"number of agreements": 1574, "satellite id": "118UWpMCHzs6CvSgWd9BfFVjw5K9pZbJjkfZJexMtSkmKxvvAW"}
2019-03-11T22:07:25.470Z	INFO	agreements	Sending agreements to satellite	{"number of agreements": 1, "satellite id": "1Vrf9xmmHw6KaVFMcfR2YPt8YpVVoQZGTUJyjYc6CajeYrAqrB"}
2019-03-11T23:01:35.410Z	INFO	agreements	Sending agreements to satellite	{"number of agreements": 6, "satellite id": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6"}

2019-03-11T23:01:35 Top of the hour comes and it tries to phone home again only to get the same error:

2019-03-11T23:01:35.432Z	INFO	piecestore	Successfully retrieved Stats...
2019-03-11T23:02:16.056Z	WARN	agreements	Agreementsender could not dial satellite	{"error": "transport error: connection error: desc = \"transport: error while dialing: dial tcp 34.80.85.84:7777: connect: connection refused\"", "errorVerbose": "transport error: connection error: desc = \"transport: error while dialing: dial tcp 34.80.85.84:7777: connect: connection refused\"\n\tstorj.io/storj/pkg/transport.(*Transport).DialNode:82\n\tstorj.io/storj/pkg/piecestore/psserver/agreementsender.(*AgreementSender).SendAgreementsToSatellite:75\n\tstorj.io/storj/pkg/piecestore/psserver/agreementsender.(*AgreementSender).Run:54\n\tstorj.io/storj/storagenode.(*Peer).Run.func3:201\n\tstorj.io/storj/vendor/golang.org/x/sync/errgroup.(*Group).Go.func1:57"}

2019-03-12T00:01:33 Another hour ticks by and another phone home attempt, only this time instead of Agreementsender could not dial satellite it says Agreementsender could not find satellite:

2019-03-12T00:01:33.927Z	INFO	piecestore	Successfully retrieved Stats...
2019-03-12T00:01:33.928Z	INFO	agreements	Sending agreements to satellite	{"number of agreements": 6, "satellite id": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6"}
2019-03-12T00:01:34.000Z	WARN	agreements	Agreementsender could not find satellite	{"error": "node not found", "errorVerbose": "node not found\n\tstorj.io/storj/pkg/kademlia.(*Kademlia).lookup:259\n\tstorj.io/storj/pkg/kademlia.(*Kademlia).FindNode:216\n\tstorj.io/storj/pkg/piecestore/psserver/agreementsender.(*AgreementSender).SendAgreementsToSatellite:69\n\tstorj.io/storj/pkg/piecestore/psserver/agreementsender.(*AgreementSender).Run:54\n\tstorj.io/storj/storagenode.(*Peer).Run.func3:201\n\tstorj.io/storj/vendor/golang.org/x/sync/errgroup.(*Group).Go.func1:57"}

2019-03-12T01:01:33 Another hour, another phone home. Error repeated.

2019-03-12T01:01:33.932Z	INFO	piecestore	Successfully retrieved Stats...
2019-03-12T01:01:33.935Z	INFO	agreements	Sending agreements to satellite	{"number of agreements": 6, "satellite id": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6"}
2019-03-12T01:01:33.956Z	WARN	agreements	Agreementsender could not find satellite	{"error": "node not found", "errorVerbose": "node not found\n\tstorj.io/storj/pkg/kademlia.(*Kademlia).lookup:259\n\tstorj.io/storj/pkg/kademlia.(*Kademlia).FindNode:216\n\tstorj.io/storj/pkg/piecestore/psserver/agreementsender.(*AgreementSender).SendAgreementsToSatellite:69\n\tstorj.io/storj/pkg/piecestore/psserver/agreementsender.(*AgreementSender).Run:54\n\tstorj.io/storj/storagenode.(*Peer).Run.func3:201\n\tstorj.io/storj/vendor/golang.org/x/sync/errgroup.(*Group).Go.func1:57"}

2019-03-12T01:06:56 I come home to find my dashboard reporting OFFLINE so I terminate the container and let it restart after which it is ONLINE and everything is working again.

2019-03-12T01:06:56.143Z	INFO	Got a signal from the OS: "terminated"
2019-03-12T01:07:37.823Z	INFO	Configuration loaded from: /app/config/config.yaml

Extra info on container running:

$ docker images
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
storjlabs/storagenode     alpha               f5421c8370b1        10 days ago         30MB
$ docker ps
CONTAINER ID        IMAGE                         COMMAND             CREATED             STATUS              PORTS                      NAMES
00cdbe654317        storjlabs/storagenode:alpha   "./entrypoint.sh"   6 days ago          Up About an hour    0.0.0.0:28967->28967/tcp   storagenode

S/Kademlia extensions - disjoint path lookup


๐Ÿ‘‹ Hey! This is an issue that Storj would love the community's help on. If you have any questions about how to get started or want to discuss further, add a comment. Likewise, if you want to jump in, say so below. PRs accepted! ๐Ÿ˜„

Implement the disjoint path lookup S/Kademlia extension our Go library, changing nodes if possible and where appropriate
http://www.spovnet.de/files/publications/SKademlia2007.pdf

Acceptance Criteria:

  1. Our Go Kad implementation is resistant to the attacks S/Kademlia mitigates

Multipart upload - Ensure that errors get properly propagated throughout the system


๐Ÿ‘‹ Hey! This is an issue that Storj would love the community's help on. If you have any questions about how to get started or want to discuss further, add a comment. Likewise, if you want to jump in, say so below. PRs accepted! ๐Ÿ˜„

Currently, a failure when uploading a segment would cause the whole object stream to become invalid and deleted.

In case of a segment upload failure, it shouldnโ€™t delete the whole object, but rather only the partial segment.

In the case of a cancelled upload, it should delete everything.

storage node last contact "Never"

I have since start never have any "last contact" or any "disk or badwidth used", have i done somting wrong?

Storage Node Dashboard

ID xxxxxxxxxxxxxxxxxxxxx
Last Contact NEVER
Uptime 98h49m58s
Available Used
Bandwidth 30.0 TB 0
Disk 2.0 TB 0

Bootstrap bootstrap.storj.io:8888
Internal xxxxxx:xxxx
External xxxxx:28967

Neighborhood Size 48

Security: Passing passwords as pointer than as values

It could be better to pass the password or security relevant parts as pointer, in this case only one copy resists in memory and could be better removed, otherwise there are multiple copies of password in ram, and could be find easier, you have to rely on the garbage collector doing its job correct and fast.

decryptedName, err := decryptBucketName(b.Name, env.Mnemonic)

Identity directory not found

file or directory not found error: open /home/uddeshya/.local/share/storj/identity/uplink/identity.cert: no such file or directory
above error was reported while creating a bucket...please provide a solution

Multipart upload - PointerDB atomic swaps when committing an object stream


๐Ÿ‘‹ Hey! This is an issue that Storj would love the community's help on. If you have any questions about how to get started or want to discuss further, add a comment. Likewise, if you want to jump in, say so below. PRs accepted! ๐Ÿ˜„

We should separate objects that are being uploaded and objects that have been uploaded. This ensures that we can properly figure out failed parts and avoids partial state being shown to end-user.

Add the ability to select storage nodes in specific areas - Geo Fencing


๐Ÿ‘‹ Hey! This is an issue that Storj would love the community's help on. If you have any questions about how to get started or want to discuss further, add a comment. Likewise, if you want to jump in, say so below. PRs accepted! ๐Ÿ˜„

When I am uploading a file to the network I want the ability to select a set of nodes within a specific radius of a point (Latitude/ Longitude). A Lat/long and radius would have to be included in the request the uplink makes to the satellite when asking for nodes.

Storj for arm

Hi, i would try compile storj to arm, but library "loov" wroten for amd64 and software does not work properly. So does any body try compile to arm or will be storj ported to arm ( use another library instead of loov)

Write instructions for using duplicity backup with Storj


๐Ÿ‘‹ Hey! This is an issue that Storj would love the community's help on. If you have any questions about how to get started or want to discuss further, add a comment. Likewise, if you want to jump in, say so below. PRs accepted! ๐Ÿ˜„

Job Story: When I need to use Duplicity to encrypt and store my backups I want a simple step by step guide on how to set it up with the Storj Network so that I can start storing my Duplicity backups on a decentralized network.

These instructions should include how to set up the Storj S3 gateway.

More information about duplicity can be found here: http://duplicity.nongnu.org/

This is a great example of the kind of instructions we are looking for: https://icicimov.github.io/blog/devops/Duplicity-encrypted-backups-to-Amazon-S3/

Failed to do periodic version check

I have just updated my storagenode to v0.8.8, and found this error in the logs

2019-04-05T16:17:32.848Z        ERROR   Failed to do periodic version check: %!(EXTRA *url.Error=Get https://version.alpha.storj.io: x509: certificate signed by unknown authority)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.