My first node does not work

Hello, I have a Raspberry Pi 3B+ lying around at home doing some other stuff and I have an unused 2TB HDD.
The Pi is connected to a VPN (openVPN, the server is an oracle cloud VM).
I have followed the official guide for creating the node and I ran this docker command:
docker run -d --restart unless-stopped --stop-timeout 300 -p 28980:28980/tcp -p 28980:28980/udp -p 14003:14003 -e WALLET=“” -e EMAIL="ilcobradelpass@gmail.com" -e ADDRESS=“:28980” -e STORAGE=“1.7TB” --mount type=bind,source=“/home/pi/StorjIdentity/Storj/Identity/storagenode/”,destination=/app/identity --mount type=bind,source=“/mnt/StorjFiles/”,destination=/app/config --name storagenode storjlabs/storagenode:latest --operator.wallet-features=zksync-era

However, when I inspect the logs i see a lot of errors like this:
2025-02-04T12:19:10Z ERROR contact:service ping satellite failed {“Process”: “storagenode”, “Satellite ID”: “12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs”, “attempts”: 1, “error”: “ping satellite: failed to ping storage node, your node indicated error code: 0, rpc: tcp connector failed: rpc: dial tcp :28980: connect: no route to host”, “errorVerbose”: “ping satellite: failed to ping storage node, your node indicated error code: 0, rpc: tcp connector failed: rpc: dial tcp :28980: connect: no route to host\n\tstorj.io/storj/storagenode/contact.(*Service).pingSatelliteOnce:209\n\tstorj.io/storj/storagenode/contact.(*Service).pingSatellite:157\n\tstorj.io/storj/storagenode/contact.(*Chore).updateCycles.func1:87\n\tstorj.io/common/sync2.(*Cycle).Run:163\n\tstorj.io/common/sync2.(*Cycle).Start.func1:77\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:78”}

I have tried to ping the satellite with:
ping eu1.storj.io and I get a normal response

But when I try to check for my open port in the open port tool it says that port 28980 is not open.

On the oracle VM I have allowed TCP and UDP port 28980.
I am a little lost

1 Like
docker run -d --restart unless-stopped --stop-timeout 300 \
    -p 28967:28980/tcp \
    -p 28967:28980/udp \
    -p 127.0.0.1:14002:14002 \
    -e WALLET="0xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
    -e EMAIL="user@example.com" \
    -e ADDRESS="domain.ddns.net:28980" \
    -e STORAGE="2TB" \
    --user $(id -u):$(id -g) \
    --mount type=bind,source="<identity-dir>",destination=/app/identity \
    --mount type=bind,source="<storage-dir>",destination=/app/config \
    --name storagenode storjlabs/storagenode:latest

Try putting 28967

1 Like

Same problem unfortunately.
When I try:
nc -zv 28980 it says “tcp failed: no route to host”

1 Like

You put this

-p 28967:28980/tcp \
-p 28967:28980/udp \

in your docker command?

and is the address correct?

it can’t work like that

if you have a fixed IP you must put that followed by the port number,

-e ADDRESS="xxx.xxx.xxx.xxx:28980"

otherwise you can use a service like NoIP

1 Like

Just a little tip dont bother with OCI free tier. They will kick you out after one month.

Why? Im am using oracle free tier for years now without any problems. In fact it gives me better performance than some paid competitors.

1 Like

They just kicked me out blocked account I cannot sign up anymore. And support does not tell me a thing :man_shrugging: I should have met the minimum requirement of .25 average load.

1 Like

Maybe as a free tier user one should avoid to use resources with limited availability like ARM instances? I never used ARM and I never had any problems. :thinking:

1 Like

Yes, the address has the fixed IP of the VPS machine where openvpn is running (the server). I tried with both 28980 and 28967 but neither worked.

1 Like

You check port on OCI network?

Yes port 28980 is open for both UDP and TCP

And configured forwarding on VM correctly?

This is how it’s configured, I haven’t set up anything else in terms of ports

I guess there’s nothing I need to do on my router, right?

And somehow your packets have to get from VM to raspberry. You can check this out it’s easy setup but with wireguard.
https://gist.github.com/arrogantrabbit/217a9845eaf9642537eb80d2f700a434 @arrogantrabbit

And your ISP router has no IPV4? Then it would be a bit easier

Well there are no egress rules, except everything is allowed to exit the VM from any port:

Thanks for the link I’ll try to set it up through wireguard although I use a docker command for storj and do not have a TrueNAS (and have no idea what a jail is in that context), so might be more tricky than just following a guide step by step

@cobra, Here is an easier approach, avoiding messing with IPTables directly, using firewalld instead getting to do all the heavy lifting:

I shall probably update that gist too, since it seems to have a life of its own now.

1 Like

Thanks, unfortunately I am not able to ping the server from the client or the client from the server, even before doing either iptables or firewall-cmd.
I also tried to follow this guide: https://github.com/ChristianLempa/videos/tree/main/wireguard-on-linux
Since he does not have a TrueNAS but a “normal” linux machine I thought it would be closer to my rapsberry pi but I can’t ping server or client either.

I seem to be the only one not able to just follow the guide and have a working solution

Update:
I installed PiVPN on the Oracle VM (with wireguard) and the server and client can ping each other. From the client I can now ping any ip address as well as domain names but only with IPv4.
ping -4 google.com works but ping google.com does not

When I run storj I still get the same error as above, although now for the first time I can ping eu1.storj.io (even without the -4 flag weirdly enough)

First you have to get your networking running then you can start with storj :wink: did you set the

net.ipv4.ip_forward=1   
``` In sysctl?

Fair. Yes I did set that in sysctl for both machines although I think only the server sysctl need to be modified.