Node appears offline after trying to setup a new storage node on MacOS 11.2.3. Running ngrok since it seems like my ISP doesn’t support port forwarding. Exact error logs will be attached in the comments.
I have turned off the firewall for both my Mac and our router, which is a ZTE F660. I did try port forwarding on our router initially but I think that my ISP doesn’t allow it since upon checking the ports it always says closed even after trying different options (I can’t seem to find my WAN address on the router page so I can’t verify this). This is why I opted into using ngrok. I have since deleted the port forwarding rules on the router.
I used the following command when running the storage node:
I have confirmed that the ports are open when using ngrok
Identity also seems to be intact:
172:~ voncaro$ grep -c BEGIN ~/Library/Application\ Support/Storj/identity/storagenode/ca.cert
2
172:~ voncaro$ grep -c BEGIN ~/Library/Application\ Support/Storj/identity/storagenode/identity.cert
3
Other details:
NoIP isn’t currently running since from my understanding you don’t need it when running ngrok, but even when it is turned on I encounter the same problem
My storage directory is a USB-connected 1TB hard drive. Not sure if that has a negative effect on the set up
When trying to run the storage node it says in the dashboard that Last Contact was 17709610h 45m ago. Others have pointed out that this might be due to a wrong system time but my machine is using automatic time so it is correct
I have tried restarting my machine and the router as well
I have tried increasing the buffer size using the link outlined in the error logs but it was giving me an error (unkown oid). After a bit of searching I found that the command only works on Linux so I searched for its MacOS counterpart but I was still getting the error after running the command
I have not yet tried redoing the whole setup process from scratch. I figured I’d get help here first before attempting to do so
I think I’ve spent about 10 hours here in the forum looking for answers to no avail so hopefully someone can point me in the right direction. Thanks!
Error logs:
> 2021-04-21T10:31:12.031Z INFO Configuration loaded {"Location": "/app/config/config.yaml"}
> 2021-04-21T10:31:12.049Z INFO Operator email {"Address": "REDACTED"}
> 2021-04-21T10:31:12.049Z INFO Operator wallet {"Address": "REDACTED"}
> 2021-04-21T10:31:14.207Z INFO Telemetry enabled {"instance ID": "12XvyBfGi74G3wJCenXVwC7Bmui3FZ4ZMeALXFpZ4a4xBr4rQVm"}
> 2021-04-21T10:31:14.585Z INFO db.migration Database Version {"version": 51}
> 2021-04-21T10:31:16.041Z INFO preflight:localtime start checking local system clock with trusted satellites' system clock.
> 2021-04-21T10:31:17.250Z INFO preflight:localtime local system clock is in sync with trusted satellites' system clock.
> 2021-04-21T10:31:17.251Z INFO bandwidth Performing bandwidth usage rollups
> 2021-04-21T10:31:17.251Z INFO Node 12XvyBfGi74G3wJCenXVwC7Bmui3FZ4ZMeALXFpZ4a4xBr4rQVm started
> 2021-04-21T10:31:17.251Z INFO Public server started on [::]:7777
> 2021-04-21T10:31:17.251Z INFO Private server started on 127.0.0.1:7778
> 2021-04-21T10:31:17.251Z INFO failed to sufficiently increase receive buffer size (was: 208 kiB, wanted: 2048 kiB, got: 416 kiB). See https://github.com/lucas-clemente/quic-go/wiki/UDP-Receive-Buffer-Size for details.
> 2021-04-21T10:31:17.252Z INFO trust Scheduling next refresh {"after": "5h42m51.707942238s"}
> 2021-04-21T10:31:18.181Z ERROR contact:service ping satellite failed {"Satellite ID": "1wFTAgs9DP5RSnCqKV1eLf6N9wtk4EAtmN5DpSxcs8EjT69tGE", "attempts": 1, "error": "ping satellite error: failed to dial storage node (ID: 12XvyBfGi74G3wJCenXVwC7Bmui3FZ4ZMeALXFpZ4a4xBr4rQVm) at address 2.tcp.ngrok.io:18257: rpc: EOF", "errorVerbose": "ping satellite error: failed to dial storage node (ID: 12XvyBfGi74G3wJCenXVwC7Bmui3FZ4ZMeALXFpZ4a4xBr4rQVm) at address 2.tcp.ngrok.io:18257: rpc: EOF\n\tstorj.io/storj/storagenode/contact.(*Service).pingSatelliteOnce:141\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"}
this means that a connection was established right? note that the port number is different because i tried a new connection in the Asia Pacific server but error logs were the same. i changed the docker command when i created this new connection so we’re good on that end.
I already thought of the Mac firewall possibly blocking the connection so I tried disabling it entirely in System Preferences but the same error appears (unless MacOS has another firewall I’m not aware of). Did you do any additional configuration with the MacOS firewall for your setup?
Ah I see. Well I just checked and it looks like my node got disqualified so it’s good a time as any to re-do the process from scratch. Will update here what happens
ngrok is difficult to manage (e.g. a different port each time it is started)
it’s easier to test portmap … but there are lots of Storj nodes in the subnet …
or use e.g. Synology and its QuickConnect
it’s best to get an external IP from your ISP
i did try portmap.io first before ngrok but I can’t quite seem to understand how it works. might give it another shot later. as for contacting my ISP, ISP customer support is terrible where I live so I’d rather save that as a last-resort option. thanks for the feedback though!
As others have already written here: tell your ISP that you must have access to a security camera in your home, and without an external IP you cannot access it …
or change your ISP to one that provides you with an external IP (doesn’t have to be a fixed IP, but has to be external) …
Got it to work after a clean reinstall using portmap and SSH! Not sure if ngrok just wasn’t working for me, I did something wrong during my initial setup or a combination of both, but I’m just glad that it’s finally displaying a green “Online” text. For now I’ll mark peem’s suggestion of using portmap instead as the solution. Thanks everyone!