Storage-dir-verification Corruption Call for HELP

storage-dir-verification got courted later today, I was able to identify the fault when my node wouldn’t start any ideas how to repair this issue?

This file is created during setup with exact identity and exact storage.
If this file is wrong or missing, then that’s mean that you (or your hardware) did something wrong.
Please, post a whole error message between two new lines with three backticks (here they are: ```).

The full story is that someone tried to ransomware attack me but they failed as the tool just encrypted home user files. The interesting thig is all storj files were unchanged except this one.
Ok so here it is:

2021-03-31T09:30:15.265+0200	ERROR	services	unexpected shutdown of a runner	{"name": "piecestore:monitor", "error": "piecestore monitor: error verifying location and/or readability of storage directory: node ID in file (127zamczGm2FtDcZmMKNBERAcWGt6KdaeDB84uV6GEctCsUH4pj) does not match running node's ID (13SvXTgji1AGoFZwoeoEGDU7SbkKdUT518tVU7JXmywg3igrbV)", "errorVerbose": "piecestore monitor: error verifying location and/or readability of storage directory: node ID in file (127zamczGm2FtDcZmMKNBERAcWGt6KdaeDB84uV6GEctCsUH4pj) does not match running node's ID (13SvXTgji1AGoFZwoeoEGDU7SbkKdUT518tVU7JXmywg3igrbV)\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-03-31T09:30:15.265+0200	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-03-31T09:30:15.265+0200	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-03-31T09:30:15.265+0200	ERROR	contact:service	ping satellite failed 	{"Satellite ID": "12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S", "attempts": 1, "error": "ping satellite error: rpc: dial tcp 34.66.151.8:7777: operation was canceled", "errorVerbose": "ping satellite error: rpc: dial tcp 34.66.151.8: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-03-31T09:30:15.265+0200	INFO	contact:service	context cancelled	{"Satellite ID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6"}
2021-03-31T09:30:15.265+0200	INFO	contact:service	context cancelled	{"Satellite ID": "12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs"}
2021-03-31T09:30:15.265+0200	INFO	contact:service	context cancelled	{"Satellite ID": "12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S"}
2021-03-31T09:30:15.265+0200	ERROR	contact:service	ping satellite failed 	{"Satellite ID": "12tRQrMTWUWwzwGh18i7Fqs67kmdhH9t6aToeiwbo5mfS2rUmo", "attempts": 1, "error": "ping satellite error: rpc: dial tcp 34.86.70.247:7777: operation was canceled", "errorVerbose": "ping satellite error: rpc: dial tcp 34.86.70.247: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-03-31T09:30:15.266+0200	ERROR	nodestats:cache	Get pricing-model/join date failed	{"error": "context canceled"}
2021-03-31T09:30:15.266+0200	INFO	contact:service	context cancelled	{"Satellite ID": "12tRQrMTWUWwzwGh18i7Fqs67kmdhH9t6aToeiwbo5mfS2rUmo"}
2021-03-31T09:30:15.265+0200	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-03-31T09:30:15.266+0200	INFO	contact:service	context cancelled	{"Satellite ID": "12rfG3sh9NCWiX3ivPjq2HtdLmbqCrvHVEzJubnzFzosMuawymB"}
2021-03-31T09:30:15.266+0200	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"}

Have you checked why does it say that ?

Interesting I will investigate that aswell

Or should just accept the loss and start a new Node???

What did your investigation reveal ?

genuinely nothing I couldn’t figure it out

Are you using 2 nodes ?

Don’t do anything and wait for @Alexey to tell you how to proceed.

1 Like

I got it to work

So long story short

I set the storage location to other place and it created the “storage-dir-verification” file

It seams that the conflicting ID`s were because of this file. it seams that this file holds the storage ID as a failsafe.

when the file got encrypted Storj must read it and deciphered it. Afterwards it must have compared them identified that they aren’t same

The node seems to be online will let you know how it goes currently checking the logs if any errors show up

1 Like

If you have had your identity on the system drive (in the %AppData% to be precise), it could be damaged by ransomware too. Thus your NodeID has changed to a different one and node refused to start, to protect your earnings.

If you re-installed the storagenode, this file is updated to your current identity and your old identity will be disqualified after a while, the held amount will be forfeit. The new identity will not recognize data from the old identity and this data will be moved to the trash by Garbage Collector (could take several weeks). This new identity will behave as a brand new node (starting with 75% of held back and zero data) but with garbage in data location.

If this ransomware is aware about Storj, it could replace your identity with scammer’s identity and they could update the satellite with their wallet to steal your earnings, when it would be send.

So, you was need to check what the identity you have had before with what you have now.
It’s possible, if you still have logs (PowerShell):

 sls "Node (.*?) started" "C:\Program Files\Storj\Storage Node\storagenode.log" | select -last 5
1 Like

OK so all good news.

The node is online. And I had a backup of my Identity hence I swapped it for the backup just in case.
Additionally I reinstalled the OS and now upgraded to win2016 as we are migrating everything over to it.

The error message seems to be as a result due to the corruption of the one file which during installation of storj in temporary directory recreated the file and now it work just fine.

Happy to say the downtime was 24h could have been total node destruction.

Thank for all your help guys, I don’t think this would be possible without you. Thanks

3 Likes