Node created using PIA (VPN) appears OFFLINE

Hi. My name is Richard. A few days ago I tried to create a node in my house but my ISP did not allow me to have a Public IP. Here I leave you the subject of that problem: New node: offline

At the moment, I cannot change ISP so then I formatted the entire hard drive and I started from scratch following the instructions in this guide: / articles / 360026892971-Running-a-V3-Storage-Node-with-PIA-VPN-

However, the node appears to me offline.
I will then start showing the photos of the node installation process in images:


The screen shots are very confusing your running windows and yet running Linux version of the identity?

I just followed the guide: / articles / 360026892971-Running-a-V3-Storage-Node-with-PIA-VPN-

What is your issue though?

Ok so did you forward the correct port? Allow storagenode in windows firewall?

I’m going to show you the configuration of my node:

  1. This is my WAN information of my Router :

  2. This is the information from Whatismyip:

  3. This is the image of my NOIP configuration and my PIA VPN:

  4. This is the PIA configuration:

Im not going to tell you exactly what your doing wrong but you need to look really good at PIA Though I don’t approve on using a VPN because its really not the right way of doing things, This is something you will need to learn on your own. Reason its not the right way of doing things is because your not even in canada and your pretending on hosting a node in canada.

The problem is the following:
My ISP does not give me a public IP.That is the reason why I use a VPN.
That is why if I DISABLE the VPN and I check my IP at:
It shows me this IP:

However, in the configuration of my Router another IP appears:

When I activate PIA VPN and DUC of NO IP. PIA takes the IP: and not

Regarding the firewall: If there is a rule created for the PIA TCP port: 52780

It is the same error that I had when I tried to configure my node without VPN: New node: offline

most likely you can get away with using noip… the vpn is just adding more confusion and you might not need it at all and it will just slow you down…

You are simple wrong. Please, do not suggest people to do a wrong things.
The NoIP just allow you to solve the problem with a dynamic public IP. It is not the case. The author do not have a public IP (their WAN is private). The NoIP can’t solve this problem, it’s not designed for that.
You need to forward the port on the ISP’s CGNAT router, I doubt that it’s possible.

1 Like

@Richard1 have you specified that port (52780) in the the ADDRESS option in case of docker or in contact.external-address: option of the "C:\Program Files\Storj\Storage Node\config.yaml" in case of Windows GUI?

1 Like

@Alexey yeah looks like you are right… tho
the isp most likely just wants him to rent a global ip, seems like a much easier fix, i mean he has to pay for the vpn subscription anyways…

kinda seems to be like just adding more points of failure and possibly poor performance.
certainly not the way i would set it up…

1 Like

this is the config.yaml log using notepad ++:

# how frequently bandwidth usage rollups are calculated
# bandwidth.interval: 1h0m0s

# how frequently expired pieces are collected
# collector.interval: 1h0m0s

# use color in user interface
# color: false

# server address of the api gateway and frontend app
# console.address:

# path to static resources
# console.static-dir: ""

# the public address of the node, useful for nodes behind NAT

# how frequently the node contact chore should run
# contact.interval: 1h0m0s

# Maximum Database Connection Lifetime, -1ns means the stdlib default
# db.conn_max_lifetime: 30m0s

# Maximum Amount of Idle Database connections, -1 means the stdlib default
# db.max_idle_conns: 1

# Maximum Amount of Open Database connections, -1 means the stdlib default
# db.max_open_conns: 5

# address to listen on for debug endpoints
# debug.addr:

# expose control panel
# debug.control: false

# provide the name of the peer to enable continuous cpu/mem profiling for
# debug.profilername: ""

# If set, a path to write a process trace SVG to
# debug.trace-out: ""

# open config in default editor
# edit-conf: false

# in-memory buffer for uploads
# filestore.write-buffer-size: 128.0 KiB

# how often to run the chore to check for satellites for the node to exit.
# graceful-exit.chore-interval: 1m0s

# the minimum acceptable bytes that an exiting node can transfer per second to the new node
# graceful-exit.min-bytes-per-second: 5.00 KB

# the minimum duration for downloading a piece from storage nodes before timing out
# graceful-exit.min-download-timeout: 2m0s

# number of concurrent transfers per graceful exit worker
# graceful-exit.num-concurrent-transfers: 5

# number of workers to handle satellite exits
# graceful-exit.num-workers: 4

# path to the certificate chain for this identity
identity.cert-path: C:\Users\USER-ORION\AppData\Roaming\Storj\Identity\storagenode\identity.cert

# path to the private key for this identity
identity.key-path: C:\Users\USER-ORION\AppData\Roaming\Storj\Identity\storagenode\identity.key

# if true, log function filename and line number
# log.caller: false

# if true, set logging to development mode
# log.development: false

# configures log encoding. can either be 'console' or 'json'
# log.encoding: console

# the minimum log level to log
log.level: info

# can be stdout, stderr, or a filename
log.output: winfile:///C:\Program Files\Storj\Storage Node\\storagenode.log

# if true, log stack traces
# log.stack: false

# address(es) to send telemetry to (comma-separated)
# metrics.addr:

# application name for telemetry identification
# storagenode.exe

# application suffix
# -release

# instance id prefix
# metrics.instance-prefix: ""

# how frequently to send up telemetry
# metrics.interval: 1m0s

# path to log for oom notices
# monkit.hw.oomlog: /var/log/kern.log

# maximum duration to wait before requesting data
# nodestats.max-sleep: 5m0s

# how often to sync reputation
# nodestats.reputation-sync: 4h0m0s

# how often to sync storage
# 12h0m0s

# operator email address

# operator wallet address
operator.wallet: 0x286A288e61Ef6D7DB74fA43F1f91533a33939234

# file preallocated for uploading
# pieces.write-prealloc-size: 4.0 MiB

# whether or not preflight check for database is enabled.
# preflight.database-check: true

# whether or not preflight check for local system clock is enabled on the satellite side. When disabling this feature, your storagenode may not setup correctly.
# preflight.local-time-check: true

# how many concurrent retain requests can be processed at the same time.
# retain.concurrency: 5

# allows for small differences in the satellite and storagenode clocks
# retain.max-time-skew: 72h0m0s

# allows configuration to enable, disable, or test retain requests from the satellite. Options: (disabled/enabled/debug)
# retain.status: enabled

# public address to listen on
server.address: :52780

# if true, client leaves may contain the most recent certificate revocation for the current certificate
# server.extensions.revocation: true

# if true, client leaves must contain a valid "signed certificate extension" (NB: verified against certs in the peer ca whitelist; i.e. if true, a whitelist must be provided)
# server.extensions.whitelist-signed-leaf: false

# path to the CA cert whitelist (peer identities must be signed by one these to be verified). this will override the default peer whitelist
# server.peer-ca-whitelist-path: ""

# identity version(s) the server will be allowed to talk to
# server.peer-id-versions: latest

# private address to listen on

# url for revocation database (e.g. bolt://some.db OR redis://
# server.revocation-dburl: bolt://C:\Program Files\Storj\Storage Node/revocations.db

# if true, uses peer ca whitelist checking
# server.use-peer-ca-whitelist: true

# total allocated bandwidth in bytes (deprecated)
storage.allocated-bandwidth: 0 B

# total allocated disk space in bytes
storage.allocated-disk-space: 1.80 TB

# how frequently Kademlia bucket should be refreshed with node stats
# storage.k-bucket-refresh-interval: 1h0m0s

# path to store data in
storage.path: D:\

# a comma-separated list of approved satellite node urls (unused)
# storage.whitelisted-satellites: ""

# how often the space used cache is synced to persistent storage
# storage2.cache-sync-interval: 1h0m0s

# directory to store databases. if empty, uses data path
# storage2.database-dir: ""

# size of the piece delete queue
# storage2.delete-queue-size: 10000

# how many piece delete workers
# storage2.delete-workers: 1

# how soon before expiration date should things be considered expired
# storage2.expiration-grace-period: 48h0m0s

# how many concurrent requests are allowed, before uploads are rejected. 0 represents unlimited.
# storage2.max-concurrent-requests: 0

# amount of memory allowed for used serials store - once surpassed, serials will be dropped at random
# storage2.max-used-serials-size: 1.00 MB

# how frequently Kademlia bucket should be refreshed with node stats
# storage2.monitor.interval: 1h0m0s

# how much bandwidth a node at minimum has to advertise (deprecated)
# storage2.monitor.minimum-bandwidth: 0 B

# how much disk space a node at minimum has to advertise
# storage2.monitor.minimum-disk-space: 500.00 GB

# how frequently to verify the location and readability of the storage directory
# storage2.monitor.verify-dir-readable-interval: 1m0s

# how frequently to verify writability of storage directory
# storage2.monitor.verify-dir-writable-interval: 5m0s

# how long after OrderLimit creation date are OrderLimits no longer accepted
# storage2.order-limit-grace-period: 1h0m0s

# length of time to archive orders before deletion
# storage2.orders.archive-ttl: 168h0m0s

# duration between archive cleanups
# storage2.orders.cleanup-interval: 5m0s

# maximum duration to wait before trying to send orders
# storage2.orders.max-sleep: 30s

# path to store order limit files in
# storage2.orders.path: C:\Program Files\Storj\Storage Node/orders

# timeout for dialing satellite during sending orders
# storage2.orders.sender-dial-timeout: 1m0s

# duration between sending
# storage2.orders.sender-interval: 5m0s

# timeout for sending
# storage2.orders.sender-timeout: 1h0m0s

# allows for small differences in the satellite and storagenode clocks
# storage2.retain-time-buffer: 48h0m0s

# how long to spend waiting for a stream operation before canceling
# 30m0s

# file path where trust lists should be cached
# C:\Program Files\Storj\Storage Node/trust-cache.json

# list of trust exclusions
# ""

# how often the trust pool should be refreshed
# 6h0m0s

# list of trust sources

# address for jaeger agent
# tracing.agent-addr:

# application name for tracing identification
# storagenode.exe

# application suffix
# -release

# buffer size for collector batch packet size
# tracing.buffer-size: 0

# whether tracing collector is enabled
# tracing.enabled: false

# how frequently to flush traces to tracing agent
# tracing.interval: 0s

# buffer size for collector queue size
# tracing.queue-size: 0

# how frequent to sample traces
# tracing.sample: 0

# Interval to check the version
# version.check-interval: 15m0s

# Request timeout for version checks
# version.request-timeout: 1m0s

# server address to check its version against
# version.server-address:

This may not be your issue, but you have an extra backslash in your log.output entry. Should be:
log.output: winfile:///C:\Program Files\Storj\Storage Node\storagenode.log

Also, you may want to chose another location for the log file since Program Files is typically not user writable unless you change permissions. I would suggest you make a folder on the C:\ drive or use your documents folder.

1 Like

el cambio fue hecho:

# can be stdout, stderr, or a filename
log.output: winfile:///C:\Users\USER-ORION\Documents\Storj\storagenode.log
1 Like

When I use the port checker it shows me a message that it is closed:

These are the data of my NOIP hostname:

  1. hostname:

  2. IP / Target:

  3. This shows me the storj dashboard:

  4. This is a screenshot of PIA and the DUC of NO IP.:

Can you please post the first 80 lines of your storagenode log? It should start with something like:

2020-08-03T17:28:10.591Z	INFO	Configuration loaded	{"Location": "/app/config/config.yaml"}

Although your path will be different. You can paste it in the forums by putting three backticks ``` before and after the block of text.

with what command do I run that in powershell?
Get-Content "$env:ProgramFiles/Storj/Storage Node/storagenode.log" -Tail 20 -Wait
that command is for the last 20 lines. I want to know how I run the first 80 lines.

You should be able to find it at the path you specified in the config.yaml file.

Just open it with notepad++. It doesn’t have to be all 80 lines, but it would be good to see any error messages that come up after initialization.

1 Like