Error creating 2nd node with toolbox

Hello, im having some problems creating my 2nd node with Toolbox.

I think database is not created and getting errors because of that.

This is the log.

2021-01-31T21:23:40.987+0100 FATAL Unrecoverable error {"error": "Error starting master database on storagenode: group:\n--- CreateFile F:\\blobs: El sistema no puede encontrar el archivo especificado.\n--- CreateFile F:\\temp: El sistema no puede encontrar el archivo especificado.\n--- CreateFile F:\\garbage: El sistema no puede encontrar el archivo especificado.\n--- CreateFile F:\\trash: El sistema no puede encontrar el archivo especificado.", "errorVerbose": "Error starting master database on storagenode: group:\n--- CreateFile F:\\blobs: El sistema no puede encontrar el archivo especificado.\n--- CreateFile F:\\temp: El sistema no puede encontrar el archivo especificado.\n--- CreateFile F:\\garbage: El sistema no puede encontrar el archivo especificado.\n--- CreateFile F:\\trash: El sistema no puede encontrar el archivo especificado.\n\tmain.cmdRun:162\n\tstorj.io/private/process.cleanup.func1.4:363\n\tstorj.io/private/process.cleanup.func1:381\n\tgithub.com/spf13/cobra.(*Command).execute:842\n\tgithub.com/spf13/cobra.(*Command).ExecuteC:950\n\tgithub.com/spf13/cobra.(*Command).Execute:887\n\tstorj.io/private/process.ExecWithCustomConfig:88\n\tstorj.io/private/process.Exec:65\n\tmain.(*service).Execute.func1:66\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57"}

The storage node, is empty.

what version of toolbox do you have?

Hello, i tried with the newest version of toolbox.

Now, thats what i have.

2021-01-31T23:41:52.783+0100 FATAL Unrecoverable error {"error": "piecestore monitor: error verifying location and/or readability of storage directory: open F:\\storage-dir-verification: El sistema no puede encontrar el archivo especificado.", "errorVerbose": "piecestore monitor: error verifying location and/or readability of storage directory: open F:\\storage-dir-verification: El sistema no puede encontrar el archivo especificado.\n\tstorj.io/storj/storagenode/monitor.(*Service).Run.func1.1:131\n\tstorj.io/common/sync2.(*Cycle).Run:92\n\tstorj.io/storj/storagenode/monitor.(*Service).Run.func1:128\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57"}

Looks like the file storage-dir-verification doesn’t exist. the databases are already ok.

This is F:/, the storage route.

strange, usualy it makes this file with no problem, do you havesigned new identity to your new node with new key from storj?

you can make this file by this. but please before delete tempconf map from F:
run it in cmd with your corelated paths.

“C:\Program Files\Storj1\Storage Node\storagenode.exe, setup --storage.path F:\ –identity-dir C:\identity2 --config-dir F:\tempconf”

Hello, i tried this command but still not working.

“C:\Program Files\Storj1\Storage Node\storagenode.exe” setup --storage.path F:\ –identity-dir “C:\identity2” --config-dir “F:\tempconf”

Im gonna give you more information and maybe we can solve the problem.

  • I have already up 1node.
  • The 2nd identy is created in: C:\Users\UserName\AppData\Roaming\Storj\Identity\storagenode1
  • The 1st identy is created in: C:\Users\UserName\AppData\Roaming\Storj\Identity\storagenode (and this is working)
  • The storagenode.exe, the logs and the config.yaml is here C:\Program Files\Storj1\Storage Node
  • I want to mount the node in F:/

The error still being this:

2021-02-01T20:17:14.497+0100 ERROR services unexpected shutdown of a runner {"name": "piecestore:monitor", "error": "piecestore monitor: error verifying location and/or readability of storage directory: open F:\\storage-dir-verification: El sistema no puede encontrar el archivo especificado.", "errorVerbose": "piecestore monitor: error verifying location and/or readability of storage directory: open F:\\storage-dir-verification: El sistema no puede encontrar el archivo especificado.\n\tstorj.io/storj/storagenode/monitor.(*Service).Run.func1.1:131\n\tstorj.io/common/sync2.(*Cycle).Run:92\n\tstorj.io/storj/storagenode/monitor.(*Service).Run.func1:128\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57"} 2021-02-01T20:17:14.498+0100 ERROR contact:service ping satellite failed {"Satellite ID": "12tRQrMTWUWwzwGh18i7Fqs67kmdhH9t6aToeiwbo5mfS2rUmo", "attempts": 1, "error": "ping satellite error: rpc: dial tcp 35.227.56.124:7777: operation was canceled", "errorVerbose": "ping satellite error: rpc: dial tcp 35.227.56.124:7777: operation was canceled\n\tstorj.io/common/rpc.TCPConnector.DialContextUnencrypted:106\n\tstorj.io/common/rpc.TCPConnector.DialContext:70\n\tstorj.io/common/rpc.Dialer.dialEncryptedConn:180\n\tstorj.io/common/rpc.Dialer.DialNodeURL.func1:101\n\tstorj.io/common/rpc/rpcpool.(*Pool).Get:87\n\tstorj.io/common/rpc.Dialer.dialPool:146\n\tstorj.io/common/rpc.Dialer.DialNodeURL:100\n\tstorj.io/storj/storagenode/contact.(*Service).pingSatelliteOnce:124\n\tstorj.io/storj/storagenode/contact.(*Service).pingSatellite:95\n\tstorj.io/storj/storagenode/contact.(*Chore).updateCycles.func1:87\n\tstorj.io/common/sync2.(*Cycle).Run:92\n\tstorj.io/common/sync2.(*Cycle).Start.func1:71\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57"} 2021-02-01T20:17:14.498+0100 ERROR contact:service ping satellite failed {"Satellite ID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "attempts": 1, "error": "ping satellite error: rpc: dial tcp 35.194.133.253:7777: operation was canceled", "errorVerbose": "ping satellite error: rpc: dial tcp 35.194.133.253:7777: operation was canceled\n\tstorj.io/common/rpc.TCPConnector.DialContextUnencrypted:106\n\tstorj.io/common/rpc.TCPConnector.DialContext:70\n\tstorj.io/common/rpc.Dialer.dialEncryptedConn:180\n\tstorj.io/common/rpc.Dialer.DialNodeURL.func1:101\n\tstorj.io/common/rpc/rpcpool.(*Pool).Get:87\n\tstorj.io/common/rpc.Dialer.dialPool:146\n\tstorj.io/common/rpc.Dialer.DialNodeURL:100\n\tstorj.io/storj/storagenode/contact.(*Service).pingSatelliteOnce:124\n\tstorj.io/storj/storagenode/contact.(*Service).pingSatellite:95\n\tstorj.io/storj/storagenode/contact.(*Chore).updateCycles.func1:87\n\tstorj.io/common/sync2.(*Cycle).Run:92\n\tstorj.io/common/sync2.(*Cycle).Start.func1:71\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57"} 2021-02-01T20:17:14.498+0100 INFO contact:service context cancelled {"Satellite ID": "12tRQrMTWUWwzwGh18i7Fqs67kmdhH9t6aToeiwbo5mfS2rUmo"} 2021-02-01T20:17:14.498+0100 ERROR nodestats:cache Get pricing-model/join date failed {"error": "context canceled"} 2021-02-01T20:17:14.498+0100 ERROR contact:service ping satellite failed {"Satellite ID": "12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S", "attempts": 1, "error": "ping satellite error: rpc: dial tcp 34.68.0.237:7777: operation was canceled", "errorVerbose": "ping satellite error: rpc: dial tcp 34.68.0.237:7777: operation was canceled\n\tstorj.io/common/rpc.TCPConnector.DialContextUnencrypted:106\n\tstorj.io/common/rpc.TCPConnector.DialContext:70\n\tstorj.io/common/rpc.Dialer.dialEncryptedConn:180\n\tstorj.io/common/rpc.Dialer.DialNodeURL.func1:101\n\tstorj.io/common/rpc/rpcpool.(*Pool).Get:87\n\tstorj.io/common/rpc.Dialer.dialPool:146\n\tstorj.io/common/rpc.Dialer.DialNodeURL:100\n\tstorj.io/storj/storagenode/contact.(*Service).pingSatelliteOnce:124\n\tstorj.io/storj/storagenode/contact.(*Service).pingSatellite:95\n\tstorj.io/storj/storagenode/contact.(*Chore).updateCycles.func1:87\n\tstorj.io/common/sync2.(*Cycle).Run:92\n\tstorj.io/common/sync2.(*Cycle).Start.func1:71\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57"} 2021-02-01T20:17:14.498+0100 INFO contact:service context cancelled {"Satellite ID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6"} 2021-02-01T20:17:14.499+0100 INFO contact:service context cancelled {"Satellite ID": "12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S"} 2021-02-01T20:17:14.498+0100 ERROR contact:service ping satellite failed {"Satellite ID": "12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs", "attempts": 1, "error": "ping satellite error: rpc: dial tcp 35.205.38.124:7777: operation was canceled", "errorVerbose": "ping satellite error: rpc: dial tcp 35.205.38.124:7777: operation was canceled\n\tstorj.io/common/rpc.TCPConnector.DialContextUnencrypted:106\n\tstorj.io/common/rpc.TCPConnector.DialContext:70\n\tstorj.io/common/rpc.Dialer.dialEncryptedConn:180\n\tstorj.io/common/rpc.Dialer.DialNodeURL.func1:101\n\tstorj.io/common/rpc/rpcpool.(*Pool).Get:87\n\tstorj.io/common/rpc.Dialer.dialPool:146\n\tstorj.io/common/rpc.Dialer.DialNodeURL:100\n\tstorj.io/storj/storagenode/contact.(*Service).pingSatelliteOnce:124\n\tstorj.io/storj/storagenode/contact.(*Service).pingSatellite:95\n\tstorj.io/storj/storagenode/contact.(*Chore).updateCycles.func1:87\n\tstorj.io/common/sync2.(*Cycle).Run:92\n\tstorj.io/common/sync2.(*Cycle).Start.func1:71\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57"} 2021-02-01T20:17:14.498+0100 ERROR contact:service ping satellite failed {"Satellite ID": "1wFTAgs9DP5RSnCqKV1eLf6N9wtk4EAtmN5DpSxcs8EjT69tGE", "attempts": 1, "error": "ping satellite error: rpc: dial tcp 35.236.51.151:7777: operation was canceled", "errorVerbose": "ping satellite error: rpc: dial tcp 35.236.51.151:7777: operation was canceled\n\tstorj.io/common/rpc.TCPConnector.DialContextUnencrypted:106\n\tstorj.io/common/rpc.TCPConnector.DialContext:70\n\tstorj.io/common/rpc.Dialer.dialEncryptedConn:180\n\tstorj.io/common/rpc.Dialer.DialNodeURL.func1:101\n\tstorj.io/common/rpc/rpcpool.(*Pool).Get:87\n\tstorj.io/common/rpc.Dialer.dialPool:146\n\tstorj.io/common/rpc.Dialer.DialNodeURL:100\n\tstorj.io/storj/storagenode/contact.(*Service).pingSatelliteOnce:124\n\tstorj.io/storj/storagenode/contact.(*Service).pingSatellite:95\n\tstorj.io/storj/storagenode/contact.(*Chore).updateCycles.func1:87\n\tstorj.io/common/sync2.(*Cycle).Run:92\n\tstorj.io/common/sync2.(*Cycle).Start.func1:71\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57"} 2021-02-01T20:17:14.498+0100 ERROR contact:service ping satellite failed {"Satellite ID": "12rfG3sh9NCWiX3ivPjq2HtdLmbqCrvHVEzJubnzFzosMuawymB", "attempts": 1, "error": "ping satellite error: rpc: dial tcp 35.228.10.185:7777: operation was canceled", "errorVerbose": "ping satellite error: rpc: dial tcp 35.228.10.185:7777: operation was canceled\n\tstorj.io/common/rpc.TCPConnector.DialContextUnencrypted:106\n\tstorj.io/common/rpc.TCPConnector.DialContext:70\n\tstorj.io/common/rpc.Dialer.dialEncryptedConn:180\n\tstorj.io/common/rpc.Dialer.DialNodeURL.func1:101\n\tstorj.io/common/rpc/rpcpool.(*Pool).Get:87\n\tstorj.io/common/rpc.Dialer.dialPool:146\n\tstorj.io/common/rpc.Dialer.DialNodeURL:100\n\tstorj.io/storj/storagenode/contact.(*Service).pingSatelliteOnce:124\n\tstorj.io/storj/storagenode/contact.(*Service).pingSatellite:95\n\tstorj.io/storj/storagenode/contact.(*Chore).updateCycles.func1:87\n\tstorj.io/common/sync2.(*Cycle).Run:92\n\tstorj.io/common/sync2.(*Cycle).Start.func1:71\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57"} 2021-02-01T20:17:14.499+0100 ERROR gracefulexit:chore error retrieving satellites. {"error": "satellitesdb error: context canceled", "errorVerbose": "satellitesdb error: context canceled\n\tstorj.io/storj/storagenode/storagenodedb.(*satellitesDB).ListGracefulExits.func1:103\n\tstorj.io/storj/storagenode/storagenodedb.(*satellitesDB).ListGracefulExits:115\n\tstorj.io/storj/storagenode/gracefulexit.(*service).ListPendingExits:89\n\tstorj.io/storj/storagenode/gracefulexit.(*Chore).Run.func1:53\n\tstorj.io/common/sync2.(*Cycle).Run:92\n\tstorj.io/storj/storagenode/gracefulexit.(*Chore).Run:50\n\tstorj.io/storj/private/lifecycle.(*Group).Run.func2.1:81\n\truntime/pprof.Do:40\n\tstorj.io/storj/private/lifecycle.(*Group).Run.func2:80\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57"} 2021-02-01T20:17:14.499+0100 INFO contact:service context cancelled {"Satellite ID": "12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs"} 2021-02-01T20:17:14.499+0100 INFO contact:service context cancelled {"Satellite ID": "1wFTAgs9DP5RSnCqKV1eLf6N9wtk4EAtmN5DpSxcs8EjT69tGE"} 2021-02-01T20:17:14.499+0100 INFO contact:service context cancelled {"Satellite ID": "12rfG3sh9NCWiX3ivPjq2HtdLmbqCrvHVEzJubnzFzosMuawymB"} 2021-02-01T20:17:15.258+0100 FATAL Unrecoverable error {"error": "piecestore monitor: error verifying location and/or readability of storage directory: open F:\\storage-dir-verification: El sistema no puede encontrar el archivo especificado.", "errorVerbose": "piecestore monitor: error verifying location and/or readability of storage directory: open F:\\storage-dir-verification: El sistema no puede encontrar el archivo especificado.\n\tstorj.io/storj/storagenode/monitor.(*Service).Run.func1.1:131\n\tstorj.io/common/sync2.(*Cycle).Run:92\n\tstorj.io/storj/storagenode/monitor.(*Service).Run.func1:128\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57"}

Maybe the ports are not already config, bug the first problem still here, this file F:\storage-dir-verification does not exist.

what error gived you cmd?

Any error, just doesn’t work and didnt create the file.

can you delete all there is and retry the command
also you need to put real path do identity not my path but your path

That looks better. I used this command:

“C:\Program Files\Storj1\Storage Node\storagenode.exe” setup --storage.path F:\ –identity-dir “C:\Users\User\AppData\Roaming\Storj\Identity\storagenode1” --config-dir “F:\tempconf”

and looks better but now i have ports problems… xD

I wanna use the port 14002 because my internet provider open it (i have to ask for open ports) but it looks not open.

Which config i have to use?

Redirect 14002(external) to 28968 (internal)

And this config on config.yaml

console.address: localhost:14003
contact.external-address: ddnsUrl:28968
server.address: :14002

With this config still offline.

PD: Thank you so much for help me @Vadim

This should be :28968.
Also, make sure that the server.private-address: have a different port from the default 7778.

This is a bad idea - you will expose your personal information to the internet like your email, wallet, your earnings, capacity and usage.
Please, remove this rule or replace the 14002 with 28968 since you confused them.
If you want to have a remote access to your dashboard use this method instead: How to remote access the web dashboard - Storj Docs

Hello @Alexey, thanks for answer.

I don’t wanna have remote access to my dashboard, i just wanna redirect my external port 14002 to my 2nd node. Is this possible?

How can i portfoward this?

server.private-address:7779 and in my router external 14002 - internal 7779???

And this variables?
contact.external-address: ddnsUrl:28968
server.address: :14002

Okey nevermind, i already did it, i had to portfoward the firewall, i totally forgot!!

Thanks for all @Alexey @Vadim

It will confuse with dashboard. But if that port is free on your router you can do it.

You should not forward it ever. The only needed port is 28968. But you want to publish it as 14002 for some unknown reason.
I should make it more clear:

  • the console.address: should contain an internal address and port of your dashboard. It never should be forwarded and better to bind it to the localhost only, i.e. console.address: 127.0.0.1:14002. Since it’s a second node, the binding port for the dashboard must be a different, i.e. console.address: 127.0.0.1:14003. It’s acceptable to make it listen on all addresses of your PC if you want to have an access to your dashboard from the local network. If so, you can make it as console.address: :14003 or console.address: 0.0.0.0:14003
  • the server.address: should contain an internal address and port where node should listen for incoming traffic from the customers or satellites. Since it’s a second node, it should be different from the default 28967, i.e. server.address: :28968.
  • the contact.external-address: should contain your external address and port. Since you want to publish your node not on 28968 but 14002, then it should be contact.external-address: ddnsUrl:14002. This address will be used by satellites and customers to contact your node. Thus you should forward 14002 port on your router to the 28968 port and IP of your PC with node and make sure that ddnsUrl:14002 is available from the internet. You can do it here: Open Port Check Tool - Test Port Forwarding on Your Router, put your ddnsUrl to the Remote Address and 14002 to the Port Number and click Check (the storagenode should be running to be able to answer).
  • the server.private-address: should contain local address and port where storagenode will listen for requests for the CLI dashboard. Since it’s a second node, it should be different from the default 7778, i.e. server.private-address: 127.0.0.1:7779. So, this port should never be forwarded too, as a web-dashboard’s one.