New node is offline

unfortunately, like all the other services I checked out, it doesn’t have a DYNdns or a TZO dype DDNS. I guess I’ll just try a 7 day trial and see how it goes

apparently you can do a 7-day trial with DYNdns then disconnect it, they will allow you to keep a single domain name

Show contents of C:\Program Files\Storj\Storage Node\config.yaml

keep in mind that I have not setup my DDNS yet, when I do, I put my .host name in there right? (I blurred out the IP, wallet adress and email on purpose)

config.yaml
# 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: 127.0.0.1:14002

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

# the public address of the node, useful for nodes behind NAT
contact.external-address: 94.207.115.***:28967

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

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

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

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

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

# 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: 15m0s

# the minimum acceptable bytes that an exiting node can transfer per second to the new node
# graceful-exit.min-bytes-per-second: 5.0 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\AppData\Roaming\Storj\Identity\storagenode\identity.cert

# path to the private key for this identity
identity.key-path: C:\Users\User\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: collectora.storj.io:9000

# application name for telemetry identification
# metrics.app: storagenode.exe

# application suffix
# metrics.app-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
# nodestats.storage-sync: 12h0m0s

# operator email address
operator.email: **********@gmail.com

# operator wallet address
operator.wallet: 0xf*********************************

# 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: :28967

# 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
server.private-address: 127.0.0.1:7778

# url for revocation database (e.g. bolt://some.db OR redis://127.0.0.1:6378?db=2&password=abc123)
# 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: 500.0 GB

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

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

# 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

# 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.0 GB

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

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

# duration between archive cleanups
# storage2.orders.cleanup-interval: 1h0m0s

# maximum duration to wait before trying to send orders
# storage2.orders.max-sleep: 5m0s

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

# duration between sending
# storage2.orders.sender-interval: 1h0m0s

# 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
# storage2.stream-operation-timeout: 30m0s

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

# list of trust exclusions
# storage2.trust.exclusions: ""

# how often the trust pool should be refreshed
# storage2.trust.refresh-interval: 6h0m0s

# list of trust sources
# storage2.trust.sources: https://tardigrade.io/trusted-satellites

# address for jaeger agent
# tracing.agent-addr: agent.tracing.datasci.storj.io

# application name for tracing identification
# tracing.app: storagenode.exe

# application suffix
# tracing.app-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: https://version.storj.io

Go to dynu.com and register an account, its free. Choose a hostname from the list. Install the Dynu IP Update Client on your windows PC. Enter that DDNS under contact.external-address:

alright I put “lasagnastorj1.freeddns.org:28967” on contact.external-adress. (the dashboard is still loading so that’s good)

any settings you recommend on the update client?

here are my most recent logs…

2020-06-04T08:51:47.501+0400 INFO bandwidth Performing bandwidth usage rollups
2020-06-04T09:51:47.645+0400 INFO bandwidth Performing bandwidth usage rollups
2020-06-04T10:51:47.741+0400 INFO bandwidth Performing bandwidth usage rollups
2020-06-04T11:51:47.856+0400 INFO bandwidth Performing bandwidth usage rollups
2020-06-04T12:33:39.986+0400 INFO trust Scheduling next refresh {“after”: “6h25m9.199312294s”}
2020-06-04T12:51:47.965+0400 INFO bandwidth Performing bandwidth usage rollups

should I stop and start the node or wait for the refresh? thanks for all your help so far!

You need to restart the node for any changes in the config to take effect.

alright, there’s still a fatal error, does this still have to do with the DDNS? if it does, I’m gonna have to buy a supported one

2020-06-04T14:37:28.614+0400 INFO Stop/Shutdown request received.
2020-06-04T14:37:28.683+0400 FATAL Unrecoverable error {“error”: “debug: http: Server closed”, “errorVerbose”: “debug: http: Server closed\n\tstorj.io/private/debug.(*Server).Run.func2:108\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57”}
2020-06-04T14:37:40.385+0400 INFO Configuration loaded {“Location”: “C:\Program Files\Storj\Storage Node\config.yaml”}
2020-06-04T14:37:40.409+0400 INFO Operator email {“Address”: “@gmail.com"}
2020-06-04T14:37:40.409+0400 INFO Operator wallet {“Address”: "0xf
************************”}
2020-06-04T14:37:42.059+0400 INFO Telemetry enabled
2020-06-04T14:37:42.077+0400 INFO db.migration Database Version {“version”: 39}
2020-06-04T14:37:42.351+0400 INFO Interrogate request received.
2020-06-04T14:37:43.042+0400 INFO preflight:localtime start checking local system clock with trusted satellites’ system clock.
2020-06-04T14:37:44.488+0400 INFO preflight:localtime local system clock is in sync with trusted satellites’ system clock.
2020-06-04T14:37:44.488+0400 INFO bandwidth Performing bandwidth usage rollups
2020-06-04T14:37:44.488+0400 INFO trust Scheduling next refresh {“after”: “5h5m2.176876061s”}
2020-06-04T14:37:44.488+0400 INFO Node 14pwD1Vz8bCd5w1C3kamgTc35zRjdkQFn6ESMNGDyyn1hsPcKE started
2020-06-04T14:37:44.488+0400 INFO Public server started on [::]:28967
2020-06-04T14:37:44.488+0400 INFO Private server started on 127.0.0.1:7778

Do you have a firewall ?

yes but I did the right configurations. It’s most likely the deafult windows firewall

Run powershell as admin. Enter the below and press enter.

New-NetFirewallRule -DisplayName "Storj v3" -Direction Inbound -Protocol TCP -LocalPort 28967 -Action Allow

Restart Storagenode services.

Restart-Service storagenode

enabled = true

services reset

2020-06-06T18:14:43.773+0400 INFO Interrogate request received.
2020-06-06T18:14:43.873+0400 INFO Stop/Shutdown request received.
2020-06-06T18:14:43.917+0400 FATAL Unrecoverable error {“error”: “debug: http: Server closed”, “errorVerbose”: “debug: http: Server closed\n\tstorj.io/private/debug.(Server).Run.func2:108\n\tgolang.org/x/sync/errgroup.(Group).Go.func1:57"}
2020-06-06T18:17:01.398+0400 INFO Configuration loaded {“Location”: “C:\Program Files\Storj\Storage Node\config.yaml”}
2020-06-06T18:17:01.406+0400 INFO Operator email {“Address”: "
@gmail.com"}
2020-06-06T18:17:01.406+0400 INFO Operator wallet {“Address”: "0x
******************************************”}
2020-06-06T18:17:02.966+0400 INFO Telemetry enabled
2020-06-06T18:17:02.976+0400 INFO db.migration Database Version {“version”: 39}
2020-06-06T18:17:03.378+0400 INFO Interrogate request received.
2020-06-06T18:17:03.962+0400 INFO preflight:localtime start checking local system clock with trusted satellites’ system clock.
2020-06-06T18:17:05.305+0400 INFO preflight:localtime local system clock is in sync with trusted satellites’ system clock.
2020-06-06T18:17:05.305+0400 INFO bandwidth Performing bandwidth usage rollups
2020-06-06T18:17:05.306+0400 INFO Node 14pwD1Vz8bCd5w1C3kamgTc35zRjdkQFn6ESMNGDyyn1hsPcKE started
2020-06-06T18:17:05.306+0400 INFO Public server started on [::]:28967
2020-06-06T18:17:05.306+0400 INFO Private server started on 127.0.0.1:7778
2020-06-06T18:17:05.306+0400 INFO trust Scheduling next refresh {“after”: “6h16m14.847151863s”}

its the same problem, unless you have a specific suggestion in mind, I’m gonna use the router supported DDNS services and see if it works.

Please, open the main page of your router (perhaps Status) and search for WAN IP, write it down.
Then go to the https://www.yougetsignal.com/tools/open-ports/ and compare the WAN IP with IP there.
If they do not match, then port forwarding will not work.

according to a website, the WAN IP is the exact same as the IP which your website says, so I think that it’s just that there are only 2 compatible DDNS services in my router which I have to manually enter if you think the problem is something else, I’d like to know because I’m not super keen on paying for a DDNS straight away

You can use any DDNS which you like. You do not forced to use one of the supported by your router, it just removes the needs of a separate program running on your device to update your DDNS address to the actual public IP.
The only thing which is remained - please, make sure that IP of your host with storagenode is exactly as in the the port forwarding rule. If you do not have a static local IP on your host, it could change with every reboot of your host or the router.

Please, check what is specified in the debug.addr: option of the config.yaml, is it uncommented or not.

debug.addr: 127.0.0.1:1

is that how it should be?

oh, also I put my ipv4 adress in the port forwarding… is that correct?

apparently there is still a problem, I restarted my node and got the same error

2020-06-09T08:10:00.321+0400 FATAL Unrecoverable error {“error”: “debug: http: Server closed”, “errorVerbose”: “debug: http: Server closed\n\tstorj.io/private/debug.(*Server).Run.func2:108\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57”}

please, comment out this string (add # before it), save the configuration and restart the storagenode.

for some reason it changed to “# debug.addr: 127.0.0.1:0”

I’m not sure what that means, but I restarted it, and the logs don’t show any errors.

(as always, personal info is deliberately blocked out)

2020-06-10T12:50:39.403+0400 INFO Configuration loaded {“Location”: “C:\Program Files\Storj\Storage Node\config.yaml”}
2020-06-10T12:50:39.446+0400 INFO Operator email {“Address”: “-------@gmail.com”}
2020-06-10T12:50:39.446+0400 INFO Operator wallet {“Address”: “0xf---------------------------------------”}
2020-06-10T12:50:40.650+0400 INFO Telemetry enabled
2020-06-10T12:50:40.735+0400 INFO db.migration Database Version {“version”: 39}
2020-06-10T12:50:41.362+0400 INFO Interrogate request received.
2020-06-10T12:50:41.762+0400 INFO preflight:localtime start checking local system clock with trusted satellites’ system clock.
2020-06-10T12:50:43.047+0400 INFO preflight:localtime local system clock is in sync with trusted satellites’ system clock.
2020-06-10T12:50:43.047+0400 INFO trust Scheduling next refresh {“after”: “7h30m34.29017715s”}
2020-06-10T12:50:43.047+0400 INFO Node 14pwD1Vz8bCd5w1C3kamgTc35zRjdkQFn6ESMNGDyyn1hsPcKE started
2020-06-10T12:50:43.047+0400 INFO Public server started on [::]:28967
2020-06-10T12:50:43.047+0400 INFO Private server started on 127.0.0.1:7778
2020-06-10T12:50:43.049+0400 INFO bandwidth Performing bandwidth usage rollups