Storj is building a decentralized cloud storage network

Overview

Storj V3 Network

Go Report Card Go Doc Coverage Status Alpha

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


Storj is an S3-compatible platform and suite of decentralized applications that 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 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. 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) first. See our license section for more details.

Have comments or bug reports? Want to propose a PR before hand-crafting it? Jump on to our forum and join the Engineering Discussions to say hi to the developer community and to talk to the Storj core team.

Want to vote on or suggest new features? Post it on the forum.

Issue tracking and roadmap

See the breakdown of what we're building by checking out the following resources:

Install required packages

To get started running Storj locally, download and install the latest release of Go (at least Go 1.13) at golang.org.

You will also need Git. (brew install git, apt-get install git, etc). If you're building on Windows, you also need to install and have gcc setup correctly.

We support Linux, Mac, and Windows operating systems. Other operating systems supported by Go should also be able to run Storj.

Download and compile Storj

Aside about GOPATH: Go 1.11 supports a new feature called Go modules, 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 instructions.

First, fork our repo and clone your copy of our repository.

git clone [email protected]:<your-username>/storj storj
cd storj

Then, let's install Storj.

go install -v ./cmd/...

Make changes and test

Make the changes you want to see! Once you're done, you can run all of the unit tests:

go test -v ./...

You can also execute only a single test package if you like. For example: go test ./pkg/identity. Add -v for more informations about the executed unit tests.

Push up a pull request

Use Git to push your changes to your fork:

git commit -a -m 'my changes!'
git push origin main

Use Github to open a pull request!

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

The network under construction (this repo) is currently licensed with the AGPLv3 license. Once the network reaches beta phase, we will be licensing all client-side code via the Apache v2 license.

For code released under the AGPLv3, we request that contributors sign our Contributor License Agreement (CLA) 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/.

Comments
  • [multinode] Estimated payout is not shown

    [multinode] Estimated payout is not shown

    1. Go to Payouts screen
    2. Click on separate node

    Actual result: result is not shown

    image

    Request URL: http://gau.myfritz.net:15002/api/v0/payouts/expectations/1NWT23BJ3ykwwEgsNw6rSV6mre5ATCHc3cucjWPQsGtBMSpQyv

    Request Method: GET

    Response:

    {
      "currentMonthEstimation": 1181,
      "undistributed": 0
    }
    
    Bug Good First Issue SNO 
    opened by profclems 40
  • Allow SNOs to specify database storage location separate from data blob

    Allow SNOs to specify database storage location separate from data blob

    This request is to allow a SNO to specify a separate database location from their data blob location.

    As the amount of data stored on a node grows I've noticed that maintaining the database starts to take more and more IOs from handling data reads and writes. With 1 TB stored I've noticed a 20% loss in performance vs an empty node following the updates that delete all stored data. Most SNOs will not have their data directory on fast storage, but would more readily be able to store the database on fast disk. This shouldn't cause a major issue with overall network reliability as SNOs that would chase the performance edge would probably have mechanisms in place to combat the increased failure domain of splitting the database from the data.

    Enhancement SNO 
    opened by JL421 28
  • Reduce Error Logging for Context Cancelled Situations

    Reduce Error Logging for Context Cancelled Situations

    As a followup to #1743, it has been stated many times also in the forums that the context cancelled errors are not actually errors. However, they are logged at ERROR level with a nasty looking golang stack trace.

    For instance:

    2019-08-15T23:19:42.451Z	INFO	piecestore	upload failed	{"Piece ID": "4RAHYAXYBWJLWNZHV4FPHS6EKD6YIO4E4CJOTGLC3Z7EIO5ABXWA", "SatelliteID": "12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S", "Action": "PUT", "error": "piecestore protocol: rpc error: code = Canceled desc = context canceled", "errorVerbose": "piecestore protocol: rpc error: code = Canceled desc = context canceled\n\tstorj.io/storj/storagenode/piecestore.(*Endpoint).Upload:288\n\tstorj.io/storj/pkg/pb._Piecestore_Upload_Handler:701\n\tstorj.io/storj/pkg/server.(*Server).logOnErrorStreamInterceptor:23\n\tgoogle.golang.org/grpc.(*Server).processStreamingRPC:1134\n\tgoogle.golang.org/grpc.(*Server).handleStream:1185\n\tgoogle.golang.org/grpc.(*Server).serveStreams.func1.1:703"}
    2019-08-15T23:19:42.451Z	ERROR	server	piecestore protocol: rpc error: code = Canceled desc = context canceled
    	storj.io/storj/storagenode/piecestore.(*Endpoint).Upload:288
    	storj.io/storj/pkg/pb._Piecestore_Upload_Handler:701
    	storj.io/storj/pkg/server.(*Server).logOnErrorStreamInterceptor:23
    	google.golang.org/grpc.(*Server).processStreamingRPC:1134
    	google.golang.org/grpc.(*Server).handleStream:1185
    	google.golang.org/grpc.(*Server).serveStreams.func1.1:703
    

    I'd like to suggest that the second ERROR log is redundant and should be removed. There is no action to be taken and just confuses people for what is a normal operational thing that sometimes happens.

    I'd also suggest that the embedded stack trace in the INFO message can be removed as it also doesn't provide any useful information for the operator. context cancelled is sufficient in this case (or even change it to somebody else beat you to it, get a better Internet provider) ;)

    Proposal 
    opened by bacoboy 24
  • adds netstate pagination

    adds netstate pagination

    Adds pagination to the netstate list function, boltdb client, and redis client. To call list from the netstate rpc client, you can now provide a StartingPathKey and Limit:

    	listReq := proto.ListRequest{
    		StartingPathKey: []byte("test/path"),
    		Limit:           5,
    		APIKey:          apiKey,
    	}
            listRes, err := client.List(ctx, &listReq)
            ...
    

    A limit is required but StartingPathKey is not. If no start key is given, listing will begin from the first key in storage.

    You can run the example client at examples/netstate-client/main.go. Tests are located:

    • pkg/netstate/netstate_test.go
    • internal/test/storage.go
    • storage/boltdb/client_test.go
    • storage/redis/client_test.go

    Redis pagination will require more work in diff pull request (for returning keys in order).


    This change is Reviewable

    opened by navillasa 24
  • 0.14.9 database pbls  & 0.14.11 infodb locked

    0.14.9 database pbls & 0.14.11 infodb locked

    0.14.11 release doesn't receive any get/put requests, and only rare Audits reports infodb locked.

    history: after watchtower has updated to 0.14.9, the SN fails to start:

    storagenode   | 2019-07-10T15:18:18.615Z        INFO Configuration loaded from: /app/config/config.yaml
    watchtower    | time="2019-07-10T12:27:59Z" level=info msg="First run: 2019-07-10 12:32:59 +0000 UTC"
    watchtower    | time="2019-07-10T15:18:04Z" level=info msg="Found new storjlabs/storagenode:alpha image (sha256:b4dadc9c3828887251479eecda2334f43978f2a1ff6e57d3819c12012127db54)"
    storagenode   | 2019-07-10T15:18:18.658Z        INFO    Operator email: [email protected]
    watchtower    | time="2019-07-10T15:18:05Z" level=info msg="Stopping /storagenode (bb8c1c3deb0b609dae972579b96f461d423c48923681138fb0d04de0ce006dd7) with SIGTERM"
    storagenode   | 2019-07-10T15:18:18.658Z        INFO    Operator wallet: 0x004bexxxxxxxxxxxxxxxxxxxxxxx965539Db8
    watchtower    | time="2019-07-10T15:18:17Z" level=info msg="Creating /storagenode"
    storagenode   | 2019-07-10T15:18:19.239Z        INFO    running on version v0.14.9
    storagenode   | 2019-07-10T15:18:19.251Z        INFO db.migration    Latest Version  {"version": 5}
    storagenode   | 2019-07-10T15:18:19.251Z        INFO db.migration.6  Add creation date.
    storagenode   | 2019-07-10T15:18:19.251Z        INFO db.migration.7  Drop certificate table.
    

    since then:

    storagenode   | 2019-07-10T16:31:23.484Z        INFO Configuration loaded from: /app/config/config.yaml
    storagenode   | 2019-07-10T16:31:23.493Z        INFO    Operator mail: [email protected]
    storagenode   | 2019-07-10T16:31:23.493Z        INFO    Operator wallet: 0x00xxxxxxxxxxxxxxxxxxxxxxxx39Db8
    watchtower    | time="2019-07-10T16:31:23Z" level=info msg="First run: 2019-07-10 16:36:23 +0000 UTC"
    storagenode   | Fatal error: Error starting master database on storagenode: boltdb error: timeout
    storagenode   |         storj.io/storj/storage/boltdb.NewShared:72
    storagenode   | storj.io/storj/storagenode/storagenodedb.New:64
    storagenode   |         main.cmdRun:134
    storagenode   | storj.io/storj/pkg/process.cleanup.func1.2:321
    storagenode   | storj.io/storj/pkg/process.cleanup.func1:335
    storagenode   | github.com/spf13/cobra.(*Command).execute:762
    storagenode   | github.com/spf13/cobra.(*Command).ExecuteC:852
    storagenode   | github.com/spf13/cobra.(*Command).Execute:800
    storagenode   |         storj.io/storj/pkg/process.Exec:75
    storagenode   |         main.main:288
    storagenode   |         runtime.main:200
    

    restart repeating....

    restarting it after a while, caused watchtower to update to 0.14.11, which stopped the errors, but doesn't get uploads, downloads and only rare Audits, infodb locked.

    storagenode   | 2019-07-10T21:46:14.997Z        INFO    Configuration loaded from: /app/config/config.yaml
    storagenode   | 2019-07-10T21:46:15.049Z        INFO    Operator email: [email protected]
    storagenode   | 2019-07-10T21:46:15.049Z        INFO    Operator wallet: 0x004bexxxxxxxxxxxxxxxxxxxxxxxxxxxxDb8
    storagenode   | 2019-07-10T21:46:15.721Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-10T21:46:15.723Z        INFO    db.migration    Latest Version  {"version": 7}
    storagenode   | 2019-07-10T21:46:15.723Z        INFO    piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     sending {"count": 2}
    storagenode   | 2019-07-10T21:46:15.724Z        INFO    vouchers        Checking vouchers
    storagenode   | 2019-07-10T21:46:15.725Z        INFO    Node 1GZowkA8ceqYhjnBuNaSoxxxxxxxxxxxxxxxxxxxxx8bEGRK started
    storagenode   | 2019-07-10T21:46:15.725Z        INFO    Public server started on [::]:28967
    storagenode   | 2019-07-10T21:46:15.725Z        INFO    Private server started on 127.0.0.1:7778
    storagenode   | 2019-07-10T21:46:15.835Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-10T21:46:16.336Z        INFO    piecestore:monitor      Remaining Bandwidth     {"bytes": 248997739715328}
    storagenode   | 2019-07-10T21:46:29.358Z        ERROR   piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     failed to archive order as rejected: serial: VNSWM7KDJFDCPGJWSXCMMHTNZA, infodb: database is locked
    storagenode   | 2019-07-10T21:46:30.081Z        INFO    piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     finished
    storagenode   | 2019-07-10T21:46:30.081Z        ERROR   piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     failed to settle orders {"error": "order: failed to archive order as rejected: serial: VNSWM7KDJFDCPGJWSXCMMHTNZA, infodb: database is locked", "errorVerbose": "order: failed to archive order as rejected: serial: VNSWM7KDJFDCPGJWSXCMMHTNZA, infodb: database is locked\n\tstorj.io/storj/storagenode/orders.(*Sender).settle.func3:191\n\tstorj.io/storj/storagenode/orders.(*Sender).settle:213\n\tstorj.io/storj/storagenode/orders.(*Sender).Settle:142\n\tstorj.io/storj/storagenode/orders.(*Sender).runOnce.func1:127\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57"}
    storagenode   | 2019-07-10T21:54:18.956Z        INFO    piecestore      download started        {"Piece ID": "AQRXS6JU4NDRAWV3ZVYWTVT5W2QPFIEUURZQWRNM2WHGTM4GMFZQ", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-10T21:54:23.596Z        INFO    piecestore      downloaded      {"Piece ID": "AQRXS6JU4NDRAWV3ZVYWTVT5W2QPFIEUURZQWRNM2WHGTM4GMFZQ", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-10T22:01:16.182Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-10T22:16:16.184Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-10T22:18:48.365Z        INFO    piecestore      download started        {"Piece ID": "WHDDFFK3CBDZX6IOI3R7HJJ4OKZ4IYUAHOF2MH53QSRIUQQDTVMA", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-10T22:18:48.689Z        INFO    piecestore      downloaded      {"Piece ID": "WHDDFFK3CBDZX6IOI3R7HJJ4OKZ4IYUAHOF2MH53QSRIUQQDTVMA", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-10T22:31:16.181Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-10T22:32:01.500Z        INFO    piecestore      download started        {"Piece ID": "NPXIDFKNKUWAFW6ET2SP4I6YUKQB27YD47XG5YZC6FOTQUKKYDNQ", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-10T22:32:01.813Z        INFO    piecestore      downloaded      {"Piece ID": "NPXIDFKNKUWAFW6ET2SP4I6YUKQB27YD47XG5YZC6FOTQUKKYDNQ", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-10T22:39:35.363Z        INFO    piecestore      download started        {"Piece ID": "MXSDZH3ED2IYF2YIAJLQY265KQS3ZAKSCITUPL4AVVEX2JFWU6VQ", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-10T22:39:35.644Z        INFO    piecestore      downloaded      {"Piece ID": "MXSDZH3ED2IYF2YIAJLQY265KQS3ZAKSCITUPL4AVVEX2JFWU6VQ", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-10T22:46:15.724Z        INFO    piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     sending {"count": 5}
    storagenode   | 2019-07-10T22:46:16.188Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-10T22:46:29.405Z        ERROR   piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     failed to archive order as rejected: serial: VNSWM7KDJFDCPGJWSXCMMHTNZA, infodb: database is locked
    storagenode   | 2019-07-10T22:46:39.417Z        ERROR   piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     failed to archive order as accepted: serial: MWZNF4R3HBHYVI43NWYMMHOOKY, infodb: database is locked
    storagenode   | 2019-07-10T22:46:39.865Z        INFO    piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     finished
    storagenode   | 2019-07-10T22:46:39.865Z        ERROR   piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     failed to settle orders {"error": "order: failed to archive order as rejected: serial: VNSWM7KDJFDCPGJWSXCMMHTNZA, infodb: database is locked; order: failed to archive order as accepted: serial: MWZNF4R3HBHYVI43NWYMMHOOKY, infodb: database is locked", "errorVerbose": "group:\n--- order: failed to archive order as rejected: serial: VNSWM7KDJFDCPGJWSXCMMHTNZA, infodb: database is locked\n\tstorj.io/storj/storagenode/orders.(*Sender).settle.func3:191\n\tstorj.io/storj/storagenode/orders.(*Sender).settle:213\n\tstorj.io/storj/storagenode/orders.(*Sender).Settle:142\n\tstorj.io/storj/storagenode/orders.(*Sender).runOnce.func1:127\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57\n--- order: failed to archive order as accepted: serial: MWZNF4R3HBHYVI43NWYMMHOOKY, infodb: database is locked\n\tstorj.io/storj/storagenode/orders.(*Sender).settle.func3:191\n\tstorj.io/storj/storagenode/orders.(*Sender).settle:208\n\tstorj.io/storj/storagenode/orders.(*Sender).Settle:142\n\tstorj.io/storj/storagenode/orders.(*Sender).runOnce.func1:127\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57"}
    storagenode   | 2019-07-10T23:01:16.193Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-10T23:16:16.183Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-10T23:26:20.722Z        INFO    piecestore      download started        {"Piece ID": "3G3PB5RK4IL5X2YJZLSBCB4AJ5PU7DEDEOMODGXDRY6PL2VXGXPA", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-10T23:26:21.167Z        INFO    piecestore      downloaded      {"Piece ID": "3G3PB5RK4IL5X2YJZLSBCB4AJ5PU7DEDEOMODGXDRY6PL2VXGXPA", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-10T23:31:16.180Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-10T23:46:15.724Z        INFO    piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     sending {"count": 3}
    storagenode   | 2019-07-10T23:46:16.180Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-10T23:46:29.546Z        ERROR   piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     failed to archive order as rejected: serial: VNSWM7KDJFDCPGJWSXCMMHTNZA, infodb: database is locked
    storagenode   | 2019-07-10T23:46:31.678Z        INFO    piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     finished
    storagenode   | 2019-07-10T23:46:31.678Z        ERROR   piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     failed to settle orders {"error": "order: failed to archive order as rejected: serial: VNSWM7KDJFDCPGJWSXCMMHTNZA, infodb: database is locked", "errorVerbose": "order: failed to archive order as rejected: serial: VNSWM7KDJFDCPGJWSXCMMHTNZA, infodb: database is locked\n\tstorj.io/storj/storagenode/orders.(*Sender).settle.func3:191\n\tstorj.io/storj/storagenode/orders.(*Sender).settle:213\n\tstorj.io/storj/storagenode/orders.(*Sender).Settle:142\n\tstorj.io/storj/storagenode/orders.(*Sender).runOnce.func1:127\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57"}
    storagenode   | 2019-07-11T00:01:16.183Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-11T00:16:16.182Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-11T00:31:16.193Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-11T00:33:51.156Z        INFO    piecestore      download started        {"Piece ID": "3G3PB5RK4IL5X2YJZLSBCB4AJ5PU7DEDEOMODGXDRY6PL2VXGXPA", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-11T00:33:51.512Z        INFO    piecestore      downloaded      {"Piece ID": "3G3PB5RK4IL5X2YJZLSBCB4AJ5PU7DEDEOMODGXDRY6PL2VXGXPA", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-11T00:37:02.349Z        INFO    piecestore      download started        {"Piece ID": "MXSDZH3ED2IYF2YIAJLQY265KQS3ZAKSCITUPL4AVVEX2JFWU6VQ", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-11T00:37:02.625Z        INFO    piecestore      downloaded      {"Piece ID": "MXSDZH3ED2IYF2YIAJLQY265KQS3ZAKSCITUPL4AVVEX2JFWU6VQ", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-11T00:46:15.723Z        INFO    piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     sending {"count": 3}
    storagenode   | 2019-07-11T00:46:16.179Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-11T00:46:29.423Z        ERROR   piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     failed to archive order as rejected: serial: VNSWM7KDJFDCPGJWSXCMMHTNZA, infodb: database is locked
    storagenode   | 2019-07-11T00:46:38.265Z        INFO    piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     finished
    storagenode   | 2019-07-11T00:46:38.265Z        ERROR   piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     failed to settle orders {"error": "order: failed to archive order as rejected: serial: VNSWM7KDJFDCPGJWSXCMMHTNZA, infodb: database is locked", "errorVerbose": "order: failed to archive order as rejected: serial: VNSWM7KDJFDCPGJWSXCMMHTNZA, infodb: database is locked\n\tstorj.io/storj/storagenode/orders.(*Sender).settle.func3:191\n\tstorj.io/storj/storagenode/orders.(*Sender).settle:213\n\tstorj.io/storj/storagenode/orders.(*Sender).Settle:142\n\tstorj.io/storj/storagenode/orders.(*Sender).runOnce.func1:127\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57"}
    storagenode   | 2019-07-11T01:01:16.182Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-11T01:04:13.764Z        INFO    piecestore      download started        {"Piece ID": "AQRXS6JU4NDRAWV3ZVYWTVT5W2QPFIEUURZQWRNM2WHGTM4GMFZQ", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-11T01:04:14.234Z        INFO    piecestore      downloaded      {"Piece ID": "AQRXS6JU4NDRAWV3ZVYWTVT5W2QPFIEUURZQWRNM2WHGTM4GMFZQ", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-11T01:06:37.907Z        INFO    piecestore      download started        {"Piece ID": "SBPNBNHEPXBTEWAUCBBQIIGLPZNINZ3WSIIEYMIGGFDCXGJJCXVQ", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-11T01:06:38.228Z        INFO    piecestore      downloaded      {"Piece ID": "SBPNBNHEPXBTEWAUCBBQIIGLPZNINZ3WSIIEYMIGGFDCXGJJCXVQ", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-11T01:16:16.185Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-11T01:31:16.192Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-11T01:33:12.739Z        INFO    piecestore      download started        {"Piece ID": "WHDDFFK3CBDZX6IOI3R7HJJ4OKZ4IYUAHOF2MH53QSRIUQQDTVMA", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-11T01:33:13.056Z        INFO    piecestore      downloaded      {"Piece ID": "WHDDFFK3CBDZX6IOI3R7HJJ4OKZ4IYUAHOF2MH53QSRIUQQDTVMA", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-11T01:37:13.477Z        INFO    piecestore      download started        {"Piece ID": "AAMKIKEZKUFAX7OKWC46UKZA4FROWHSHUNLT4TEHO4JPOESVJPUA", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-11T01:37:14.222Z        INFO    piecestore      downloaded      {"Piece ID": "AAMKIKEZKUFAX7OKWC46UKZA4FROWHSHUNLT4TEHO4JPOESVJPUA", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-11T01:46:15.724Z        INFO    piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     sending {"count": 5}
    storagenode   | 2019-07-11T01:46:16.181Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-11T01:46:30.555Z        ERROR   piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     failed to archive order as rejected: serial: VNSWM7KDJFDCPGJWSXCMMHTNZA, infodb: database is locked
    storagenode   | 2019-07-11T01:46:40.567Z        ERROR   piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     failed to archive order as accepted: serial: HHWPX3X4YBC6ZOFUG5GV23F5BM, infodb: database is locked
    storagenode   | 2019-07-11T01:46:50.580Z        ERROR   piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     failed to archive order as accepted: serial: RN32AW7J4ZBJNJZ64MBN2C6VOE, infodb: database is locked
    storagenode   | 2019-07-11T01:47:00.593Z        ERROR   piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     failed to archive order as accepted: serial: SBMS3XKGDBD4TMEXFAMPNC444Q, infodb: database is locked
    storagenode   | 2019-07-11T01:47:10.619Z        ERROR   piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     failed to archive order as accepted: serial: 4CTW3IE3UNBIBK23BLFCQES5TU, infodb: database is locked
    storagenode   | 2019-07-11T01:47:10.619Z        INFO    piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     finished
    storagenode   | 2019-07-11T01:47:10.619Z        ERROR   piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     failed to settle orders {"error": "order: failed to archive order as rejected: serial: VNSWM7KDJFDCPGJWSXCMMHTNZA, infodb: database is locked; order: failed to archive order as accepted: serial: HHWPX3X4YBC6ZOFUG5GV23F5BM, infodb: database is locked; order: failed to archive order as accepted: serial: RN32AW7J4ZBJNJZ64MBN2C6VOE, infodb: database is locked; order: failed to archive order as accepted: serial: SBMS3XKGDBD4TMEXFAMPNC444Q, infodb: database is locked; order: failed to archive order as accepted: serial: 4CTW3IE3UNBIBK23BLFCQES5TU, infodb: database is locked", "errorVerbose": "group:\n--- order: failed to archive order as rejected: serial: VNSWM7KDJFDCPGJWSXCMMHTNZA, infodb: database is locked\n\tstorj.io/storj/storagenode/orders.(*Sender).settle.func3:191\n\tstorj.io/storj/storagenode/orders.(*Sender).settle:213\n\tstorj.io/storj/storagenode/orders.(*Sender).Settle:142\n\tstorj.io/storj/storagenode/orders.(*Sender).runOnce.func1:127\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57\n--- order: failed to archive order as accepted: serial: HHWPX3X4YBC6ZOFUG5GV23F5BM, infodb: database is locked\n\tstorj.io/storj/storagenode/orders.(*Sender).settle.func3:191\n\tstorj.io/storj/storagenode/orders.(*Sender).settle:208\n\tstorj.io/storj/storagenode/orders.(*Sender).Settle:142\n\tstorj.io/storj/storagenode/orders.(*Sender).runOnce.func1:127\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57\n--- order: failed to archive order as accepted: serial: RN32AW7J4ZBJNJZ64MBN2C6VOE, infodb: database is locked\n\tstorj.io/storj/storagenode/orders.(*Sender).settle.func3:191\n\tstorj.io/storj/storagenode/orders.(*Sender).settle:208\n\tstorj.io/storj/storagenode/orders.(*Sender).Settle:142\n\tstorj.io/storj/storagenode/orders.(*Sender).runOnce.func1:127\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57\n--- order: failed to archive order as accepted: serial: SBMS3XKGDBD4TMEXFAMPNC444Q, infodb: database is locked\n\tstorj.io/storj/storagenode/orders.(*Sender).settle.func3:191\n\tstorj.io/storj/storagenode/orders.(*Sender).settle:208\n\tstorj.io/storj/storagenode/orders.(*Sender).Settle:142\n\tstorj.io/storj/storagenode/orders.(*Sender).runOnce.func1:127\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57\n--- order: failed to archive order as accepted: serial: 4CTW3IE3UNBIBK23BLFCQES5TU, infodb: database is locked\n\tstorj.io/storj/storagenode/orders.(*Sender).settle.func3:191\n\tstorj.io/storj/storagenode/orders.(*Sender).settle:208\n\tstorj.io/storj/storagenode/orders.(*Sender).Settle:142\n\tstorj.io/storj/storagenode/orders.(*Sender).runOnce.func1:127\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57"}
    storagenode   | 2019-07-11T02:01:16.181Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-11T02:16:16.185Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-11T02:31:07.613Z        INFO    piecestore      download started        {"Piece ID": "MXSDZH3ED2IYF2YIAJLQY265KQS3ZAKSCITUPL4AVVEX2JFWU6VQ", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-11T02:31:07.971Z        INFO    piecestore      downloaded      {"Piece ID": "MXSDZH3ED2IYF2YIAJLQY265KQS3ZAKSCITUPL4AVVEX2JFWU6VQ", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-11T02:31:16.183Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-11T02:37:40.181Z        INFO    piecestore      download started        {"Piece ID": "WHDDFFK3CBDZX6IOI3R7HJJ4OKZ4IYUAHOF2MH53QSRIUQQDTVMA", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-11T02:37:40.467Z        INFO    piecestore      downloaded      {"Piece ID": "WHDDFFK3CBDZX6IOI3R7HJJ4OKZ4IYUAHOF2MH53QSRIUQQDTVMA", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-11T02:40:14.870Z        INFO    piecestore      download started        {"Piece ID": "AAMKIKEZKUFAX7OKWC46UKZA4FROWHSHUNLT4TEHO4JPOESVJPUA", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-11T02:40:15.176Z        INFO    piecestore      downloaded      {"Piece ID": "AAMKIKEZKUFAX7OKWC46UKZA4FROWHSHUNLT4TEHO4JPOESVJPUA", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-11T02:46:15.723Z        INFO    piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     sending {"count": 8}
    storagenode   | 2019-07-11T02:46:16.181Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-11T02:46:29.269Z        ERROR   piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     failed to archive order as rejected: serial: VNSWM7KDJFDCPGJWSXCMMHTNZA, infodb: database is locked
    storagenode   | 2019-07-11T02:46:39.281Z        ERROR   piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     failed to archive order as rejected: serial: HHWPX3X4YBC6ZOFUG5GV23F5BM, infodb: database is locked
    storagenode   | 2019-07-11T02:46:48.846Z        INFO    piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     finished
    storagenode   | 2019-07-11T02:46:48.846Z        ERROR   piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     failed to settle orders {"error": "order: failed to archive order as rejected: serial: VNSWM7KDJFDCPGJWSXCMMHTNZA, infodb: database is locked; order: failed to archive order as rejected: serial: HHWPX3X4YBC6ZOFUG5GV23F5BM, infodb: database is locked", "errorVerbose": "group:\n--- order: failed to archive order as rejected: serial: VNSWM7KDJFDCPGJWSXCMMHTNZA, infodb: database is locked\n\tstorj.io/storj/storagenode/orders.(*Sender).settle.func3:191\n\tstorj.io/storj/storagenode/orders.(*Sender).settle:213\n\tstorj.io/storj/storagenode/orders.(*Sender).Settle:142\n\tstorj.io/storj/storagenode/orders.(*Sender).runOnce.func1:127\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57\n--- order: failed to archive order as rejected: serial: HHWPX3X4YBC6ZOFUG5GV23F5BM, infodb: database is locked\n\tstorj.io/storj/storagenode/orders.(*Sender).settle.func3:191\n\tstorj.io/storj/storagenode/orders.(*Sender).settle:213\n\tstorj.io/storj/storagenode/orders.(*Sender).Settle:142\n\tstorj.io/storj/storagenode/orders.(*Sender).runOnce.func1:127\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57"}
    storagenode   | 2019-07-11T03:01:16.180Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-11T03:09:40.368Z        INFO    piecestore      download started        {"Piece ID": "AQRXS6JU4NDRAWV3ZVYWTVT5W2QPFIEUURZQWRNM2WHGTM4GMFZQ", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-11T03:09:40.823Z        INFO    piecestore      downloaded      {"Piece ID": "AQRXS6JU4NDRAWV3ZVYWTVT5W2QPFIEUURZQWRNM2WHGTM4GMFZQ", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-11T03:16:16.183Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-11T03:31:16.205Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-11T03:46:15.724Z        INFO    piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     sending {"count": 3}
    storagenode   | 2019-07-11T03:46:16.187Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-11T03:46:30.664Z        ERROR   piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     failed to archive order as rejected: serial: VNSWM7KDJFDCPGJWSXCMMHTNZA, infodb: database is locked
    storagenode   | 2019-07-11T03:46:31.795Z        INFO    piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     finished
    storagenode   | 2019-07-11T03:46:31.795Z        ERROR   piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     failed to settle orders {"error": "order: failed to archive order as rejected: serial: VNSWM7KDJFDCPGJWSXCMMHTNZA, infodb: database is locked", "errorVerbose": "order: failed to archive order as rejected: serial: VNSWM7KDJFDCPGJWSXCMMHTNZA, infodb: database is locked\n\tstorj.io/storj/storagenode/orders.(*Sender).settle.func3:191\n\tstorj.io/storj/storagenode/orders.(*Sender).settle:213\n\tstorj.io/storj/storagenode/orders.(*Sender).Settle:142\n\tstorj.io/storj/storagenode/orders.(*Sender).runOnce.func1:127\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57"}
    storagenode   | 2019-07-11T04:01:16.183Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-11T04:16:16.180Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-11T04:29:25.584Z        INFO    piecestore      download started        {"Piece ID": "AAMKIKEZKUFAX7OKWC46UKZA4FROWHSHUNLT4TEHO4JPOESVJPUA", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-11T04:29:26.026Z        INFO    piecestore      downloaded      {"Piece ID": "AAMKIKEZKUFAX7OKWC46UKZA4FROWHSHUNLT4TEHO4JPOESVJPUA", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-11T04:31:16.187Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-11T04:35:40.243Z        INFO    piecestore      download started        {"Piece ID": "AAMKIKEZKUFAX7OKWC46UKZA4FROWHSHUNLT4TEHO4JPOESVJPUA", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-11T04:35:40.566Z        INFO    piecestore      downloaded      {"Piece ID": "AAMKIKEZKUFAX7OKWC46UKZA4FROWHSHUNLT4TEHO4JPOESVJPUA", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-11T04:46:15.723Z        INFO    piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     sending {"count": 3}
    storagenode   | 2019-07-11T04:46:16.258Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-11T04:46:29.218Z        ERROR   piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     failed to archive order as rejected: serial: VNSWM7KDJFDCPGJWSXCMMHTNZA, infodb: database is locked
    storagenode   | 2019-07-11T04:46:30.754Z        INFO    piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     finished
    storagenode   | 2019-07-11T04:46:30.754Z        ERROR   piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     failed to settle orders {"error": "order: failed to archive order as rejected: serial: VNSWM7KDJFDCPGJWSXCMMHTNZA, infodb: database is locked", "errorVerbose": "order: failed to archive order as rejected: serial: VNSWM7KDJFDCPGJWSXCMMHTNZA, infodb: database is locked\n\tstorj.io/storj/storagenode/orders.(*Sender).settle.func3:191\n\tstorj.io/storj/storagenode/orders.(*Sender).settle:213\n\tstorj.io/storj/storagenode/orders.(*Sender).Settle:142\n\tstorj.io/storj/storagenode/orders.(*Sender).runOnce.func1:127\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57"}
    storagenode   | 2019-07-11T04:59:30.970Z        INFO    piecestore      download started        {"Piece ID": "NPXIDFKNKUWAFW6ET2SP4I6YUKQB27YD47XG5YZC6FOTQUKKYDNQ", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-11T04:59:31.390Z        INFO    piecestore      downloaded      {"Piece ID": "NPXIDFKNKUWAFW6ET2SP4I6YUKQB27YD47XG5YZC6FOTQUKKYDNQ", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-11T05:01:16.204Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-11T05:11:53.447Z        INFO    piecestore      download started        {"Piece ID": "AQRXS6JU4NDRAWV3ZVYWTVT5W2QPFIEUURZQWRNM2WHGTM4GMFZQ", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-11T05:11:53.733Z        INFO    piecestore      downloaded      {"Piece ID": "AQRXS6JU4NDRAWV3ZVYWTVT5W2QPFIEUURZQWRNM2WHGTM4GMFZQ", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-11T05:16:16.187Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-11T05:31:16.180Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-11T05:46:15.723Z        INFO    piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     sending {"count": 3}
    storagenode   | 2019-07-11T05:46:16.184Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-11T05:46:29.264Z        INFO    piecestore:orderssender.121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6     finished
    storagenode   | 2019-07-11T06:01:16.187Z        INFO    running on version v0.14.11
    storagenode   | 2019-07-11T06:11:41.203Z        INFO    piecestore      download started        {"Piece ID": "SBPNBNHEPXBTEWAUCBBQIIGLPZNINZ3WSIIEYMIGGFDCXGJJCXVQ", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-11T06:11:41.688Z        INFO    piecestore      downloaded      {"Piece ID": "SBPNBNHEPXBTEWAUCBBQIIGLPZNINZ3WSIIEYMIGGFDCXGJJCXVQ", "SatelliteID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "Action": "GET_AUDIT"}
    storagenode   | 2019-07-11T06:16:16.197Z        INFO    running on version v0.14.11
    
    opened by chymian 21
  • My node is always restarting

    My node is always restarting

    Hi My node is always restarting: "docker exec -it storagenode /app/dashboard.sh Error response from daemon: Container 78ee9ec40eb3cf0dfb02557f655b590b89e62fb15abfbcb00a4804207d931934 is restarting, wait until the container is running"

    The problem began when I updated the node.

    2019-04-25T21:58:49.722Z INFO running on version v0.10.1 2019-04-25T21:58:49.743Z INFO db.migration Latest Version {"version": 5} Fatal error: Error creating tables for master database on storagenode: migrate: creating version table failed: migrate: file is not a database storj.io/storj/internal/migrate.(*Migration).Run:106 storj.io/storj/storagenode/storagenodedb.(*InfoDB).CreateTables:65 storj.io/storj/storagenode/storagenodedb.(*DB).CreateTables:120 main.cmdRun:158 storj.io/storj/pkg/process.cleanup.func1.2:252 storj.io/storj/pkg/process.cleanup.func1:266 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:56 main.main:323 runtime.main:200 Captura de ecrã 2019-04-25, às 15 01 52 Captura de ecrã 2019-04-25, às 15 03 27

    opened by monitorlivre 21
  • uplinkc: Add restrict_scope-function

    uplinkc: Add restrict_scope-function

    What: This commit will add restrict_scope-function to uplinkc.

    Why: uplinkc lacks that functionality and therefore it is currently not possible to restrict Access via uplinkc and ist bindings (e.g. .Net).

    Please describe the tests: None yet

    Please describe the performance impact:

    Code Review Checklist (to be filled out by reviewer)

    • [ ] NEW: Are there any Satellite database migrations? Are they forwards and backwards compatible?
    • [ ] Does the PR describe what changes are being made?
    • [ ] Does the PR describe why the changes are being made?
    • [ ] Does the code follow our style guide?
    • [ ] Does the code follow our testing guide?
    • [ ] Is the PR appropriately sized? (If it could be broken into smaller PRs it should be)
    • [ ] Does the new code have enough tests? (every PR should have tests or justification otherwise. Bug-fix PRs especially)
    • [ ] Does the new code have enough documentation that answers "how do I use it?" and "what does it do?"? (both source documentation and higher level, diagrams?)
    • [ ] Does any documentation need updating?
    • [ ] Do the database access patterns make sense?
    cla-signed 
    opened by TopperDEL 19
  • Kernel task hang message on Debian 10

    Kernel task hang message on Debian 10

    Hi, I'm running Debian 10 with kernel 4.19 AMD64 and I get the following messages:

    [ 7976.092755] INFO: task storagenode:2341 blocked for more than 120 seconds.
    [ 7976.092835]       Tainted: G           OE     4.19.0-5-amd64 #1 Debian 4.19.37-5
    [ 7976.092841] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
    [ 7976.092848] storagenode     D    0  2341   2282 0x00000120
    [ 7976.092853] Call Trace:
    [ 7976.092997]  ? __schedule+0x2a2/0x870
    [ 7976.093001]  schedule+0x28/0x80
    [ 7976.093005]  schedule_preempt_disabled+0xa/0x10
    [ 7976.093008]  __mutex_lock.isra.5+0x2cc/0x4a0
    [ 7976.093041]  ? __check_object_size+0x15d/0x189
    [ 7976.093063]  ? strncpy_from_user+0x4a/0x170
    [ 7976.093089]  lock_rename+0x28/0xb0
    [ 7976.093110]  do_renameat2+0x2a9/0x560
    [ 7976.093130]  __x64_sys_renameat+0x1d/0x20
    [ 7976.093160]  do_syscall_64+0x53/0x110
    [ 7976.093181]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
    [ 7976.093218] RIP: 0033:0x4b140a
    [ 7976.093254] Code: Bad RIP value.
    [ 7976.093257] RSP: 002b:000000c0000c3420 EFLAGS: 00000206 ORIG_RAX: 0000000000000108
    [ 7976.093261] RAX: ffffffffffffffda RBX: 000000c000040000 RCX: 00000000004b140a
    [ 7976.093262] RDX: ffffffffffffff9c RSI: 000000c000184000 RDI: ffffffffffffff9c
    [ 7976.093264] RBP: 000000c0000c34a0 R08: 0000000000000000 R09: 0000000000000000
    [ 7976.093266] R10: 000000c000584100 R11: 0000000000000206 R12: ffffffffffffffff
    [ 7976.093267] R13: 0000000000000003 R14: 0000000000000002 R15: 0000000000000040
    
    

    Despite this, everything still seems normal and the storage node is still running according to the dashboard.

    Waiting for Feedback 
    opened by minhng99 19
  • Storage node is unable to use multiple cores.

    Storage node is unable to use multiple cores.

    During the latest tests I noticed that, while all cores are utilized, the combined CPU usage does not go above 110%, indicating that there is something that is single threaded (and all threads take turns in accessing it). In addition, this slows down with the amount of data stored on the node.

    Average detailed CPU usage (maximum 100%) image A very clear flat top. The jump from 12% to 25% happened because I reduced the core count in the VM from 8 to 4.

    Traffic during that time (decreasing as the amount of data increases): image

    CPU utilization per core, stacked (maximum would be 400%), shorted timespan because I created this graph later: image Again, a very clear flat top at 110%.

    Traffic during the time span of the indivitual core graph: image

    Bug WIP 
    opened by Pentium100MHz 19
  • Access Grant Flow Card Implementation. Access Grant Flow Feature Flag implementation

    Access Grant Flow Card Implementation. Access Grant Flow Feature Flag implementation

    What: Created feature flag for the new access grant flow. Created new access grant cards (CLI, S3, Access Grant) to launch new flow in future story. New components wrapped in feature flag.

    Why: To enable to new Access Grant Flow

    Please describe the performance impact:

    Code Review Checklist (to be filled out by reviewer)

    • [ ] NEW: Are there any Satellite database migrations? Are they forwards and backwards compatible?
    • [ ] Does the PR describe what changes are being made?
    • [ ] Does the PR describe why the changes are being made?
    • [ ] Does the code follow our style guide?
    • [ ] Does the code follow our testing guide?
    • [ ] Is the PR appropriately sized? (If it could be broken into smaller PRs it should be)
    • [ ] Does the new code have enough tests? (every PR should have tests or justification otherwise. Bug-fix PRs especially)
    • [ ] Does the new code have enough documentation that answers "how do I use it?" and "what does it do?"? (both source documentation and higher level, diagrams?)
    • [ ] Does any documentation need updating?
    • [ ] Do the database access patterns make sense?
    cla-signed 
    opened by hovex023 18
  • uplinkc: RestrictScope-issue with uplink.Net

    uplinkc: RestrictScope-issue with uplink.Net

    I need help with the restrict_scope-implementation of the Uplink.Net-wrapper. It generates a correct scope (as far as I can see) but when trying to us it to download an object, I get an "Unauthorized API credentials" on open_bucket.

    I think that the restrictions do not get transferred correctly but I do now know how to check this further. This is my testcode: https://github.com/TopperDEL/uplink.net/blob/5d02eb1f2b7fc5f497d2caebb80d3d1071f629a0/uplink.NET/uplink.NET.Test/ScopeTest.cs#L57

    Due to the SWIG-wrapping issues of EncryptionRestrictions, I've created some helper-functions in C to supply an EncryptionRestrictions-Array: https://github.com/TopperDEL/uplink.net/blob/5d02eb1f2b7fc5f497d2caebb80d3d1071f629a0/SWIG/storj_uplink_second.i#L116

    opened by TopperDEL 18
  • [New Billing Page] Removing Default card flow

    [New Billing Page] Removing Default card flow

    This is not a bug, but rather feature request

    1. As far as user can't delete credit card -> maybe better to add warning about it and get rid of Remove button for Default card see attachment
    Screenshot 2022-09-30 at 18 06 01
    1. Align "Remove" text
    Screenshot 2022-09-30 at 18 11 15 Bug 
    opened by andriikotko 0
  • [New Billing Page] Overlapping on Storj Token card

    [New Billing Page] Overlapping on Storj Token card

    Go to Billing Page, open Payment Methods tab see video attachment

    https://user-images.githubusercontent.com/14928042/193306460-e9df07f0-f2ae-4249-86a4-af8b92ed9850.mp4

    Bug 
    opened by andriikotko 0
  • [New Billing Page] Billing History tab doesn't send 'billing-history' request -> not shown billing history list

    [New Billing Page] Billing History tab doesn't send 'billing-history' request -> not shown billing history list

    Billing History tab doesn't send 'billing-history' request - as a consequence -> billing history list is not shown Possible to see it only if user click Payment Methods tab ( which send 'billing-history' request) see video attachment

    https://user-images.githubusercontent.com/14928042/193305931-821b6dd6-7f51-4b7b-b605-f8658e52f773.mp4

    Bug 
    opened by andriikotko 0
  • Explore batch insert into billing table for token payments

    Explore batch insert into billing table for token payments

    This ticket in an enhancement to the insertion of billing transactions into the billing table. Right now the records are inserted one at a time, and subsequently the user balance is updated accordingly.

    It may be possible to use a batch insert for these transactions to improve performance when there are lots of token payments being received, however the balance must be updated carefully to ensure the users balance does not become negative (i.e. a user has spent more on an invoice than what they have deposited in tokens.)

    In previous attempts, it appeared that batch would not work because order could not be guaranteed when batching inserts, however this may not be the case. (See comments here https://review.dev.storj.io/c/storj/storj/+/8257)

    opened by dlamarmorgan 0
  • Release-v1.65 Test Multiple Access Grants

    Release-v1.65 Test Multiple Access Grants

    9b172cb web/satellite: allow multiple create of multiple access types Even if the user selects multiple access grants I would expect that we only create one API key in our database. Hopefully we don't just create multiple API keys with the same name.

    opened by littleskunk 0
Releases(v1.65.1)
Owner
Storj
Storj Labs is Building the Decentralized Future
Storj
"rsync for cloud storage" - Google Drive, S3, Dropbox, Backblaze B2, One Drive, Swift, Hubic, Wasabi, Google Cloud Storage, Yandex Files

Website | Documentation | Download | Contributing | Changelog | Installation | Forum Rclone Rclone ("rsync for cloud storage") is a command-line progr

rclone 34.7k Sep 24, 2022
QingStor Object Storage service support for go-storage

go-services-qingstor QingStor Object Storage service support for go-storage. Install go get github.com/minhjh/go-service-qingstor/v3 Usage import ( "

minhjh 0 Dec 13, 2021
SFTPGo - Fully featured and highly configurable SFTP server with optional FTP/S and WebDAV support - S3, Google Cloud Storage, Azure Blob

SFTPGo - Fully featured and highly configurable SFTP server with optional FTP/S and WebDAV support - S3, Google Cloud Storage, Azure Blob

Nicola Murino 4.8k Oct 2, 2022
Rook is an open source cloud-native storage orchestrator for Kubernetes

Rook is an open source cloud-native storage orchestrator for Kubernetes, providing the platform, framework, and support for a diverse set of storage solutions to natively integrate with cloud-native environments.

Rook 26 Sep 4, 2022
Cloud-Native distributed storage built on and for Kubernetes

Longhorn Build Status Engine: Manager: Instance Manager: Share Manager: Backing Image Manager: UI: Test: Release Status Release Version Type 1.1 1.1.2

Longhorn.io 4.1k Sep 25, 2022
s3git: git for Cloud Storage. Distributed Version Control for Data.

s3git: git for Cloud Storage. Distributed Version Control for Data. Create decentralized and versioned repos that scale infinitely to 100s of millions of files. Clone huge PB-scale repos on your local SSD to make changes, commit and push back. Oh yeah, it dedupes too and offers directory versioning.

s3git 1.4k Sep 24, 2022
An encrypted object storage system with unlimited space backed by Telegram.

TGStore An encrypted object storage system with unlimited space backed by Telegram. Please only upload what you really need to upload, don't abuse any

The golang.design Initiative 74 Sep 28, 2022
tstorage is a lightweight local on-disk storage engine for time-series data

tstorage is a lightweight local on-disk storage engine for time-series data with a straightforward API. Especially ingestion is massively opt

Ryo Nakao 807 Sep 20, 2022
storage interface for local disk or AWS S3 (or Minio) platform

storage interface for local disk or AWS S3 (or Minio) platform

Bo-Yi Wu 14 Apr 19, 2022
Terraform provider for the Minio object storage.

terraform-provider-minio A Terraform provider for Minio, a self-hosted object storage server that is compatible with S3. Check out the documenation on

Refaktory 8 Jan 29, 2022
A Redis-compatible server with PostgreSQL storage backend

postgredis A wild idea of having Redis-compatible server with PostgreSQL backend. Getting started As a binary: ./postgredis -addr=:6380 -db=postgres:/

Ivan Elfimov 1 Nov 8, 2021
CSI for S3 compatible SberCloud Object Storage Service

sbercloud-csi-obs CSI for S3 compatible SberCloud Object Storage Service This is a Container Storage Interface (CSI) for S3 (or S3 compatible) storage

Vitaly 2 Feb 17, 2022
Void is a zero storage cost large file sharing system.

void void is a zero storage cost large file sharing system. License Copyright © 2021 Changkun Ou. All rights reserved. Unauthorized using, copying, mo

Changkun Ou 6 Nov 22, 2021
This is a simple file storage server. User can upload file, delete file and list file on the server.

Simple File Storage Server This is a simple file storage server. User can upload file, delete file and list file on the server. If you want to build a

BH_Lin 0 Jan 19, 2022
High Performance, Kubernetes Native Object Storage

MinIO Quickstart Guide MinIO is a High Performance Object Storage released under GNU Affero General Public License v3.0. It is API compatible with Ama

Multi-Cloud Object Storage 35.6k Oct 2, 2022
Perkeep (née Camlistore) is your personal storage system for life: a way of storing, syncing, sharing, modelling and backing up content.

Perkeep is your personal storage system. It's a way to store, sync, share, import, model, and back up content. Keep your stuff for life. For more, see

Perkeep (née Camlistore) 6k Sep 29, 2022
Storage Orchestration for Kubernetes

What is Rook? Rook is an open source cloud-native storage orchestrator for Kubernetes, providing the platform, framework, and support for a diverse se

Rook 10.4k Sep 25, 2022
A High Performance Object Storage released under Apache License

MinIO Quickstart Guide MinIO is a High Performance Object Storage released under Apache License v2.0. It is API compatible with Amazon S3 cloud storag

null 1 Sep 30, 2021
TurtleDex is a decentralized cloud storage platform that radically alters the landscape of cloud storage

TurtleDex is a decentralized cloud storage platform that radically alters the landscape of cloud storage. By leveraging smart contracts, client-side encryption, and sophisticated redundancy (via Reed-Solomon codes), TurtleDex allows users to safely store their data with hosts that they do not know or trust.

TurtleDev 531 May 29, 2021
TurtleDex is a decentralized cloud storage platform that radically alters the landscape of cloud storage.

TurtleDex is a decentralized cloud storage platform that radically alters the landscape of cloud storage. By leveraging smart contracts, client-side e

TurtleDev 18 Feb 17, 2021