All available flags for storagenode

                                            Currently available flags ( v1.102.3)

Flag Type Description
- -bandwidth.interval duration how frequently bandwidth usage rollups are calculated (default 1h0m0s)
- -collector.interval duration how frequently expired pieces are collected (default 1h0m0s)
- -console.address string server address of the api gateway and frontend app (default
- -console.static-dir string path to static resources
- -contact.external-address string the public address of the node, useful for nodes behind NAT
- -contact.interval duration how frequently the node contact chore should run (default 1h0m0s)
- -contact.tags signedtags protobuf serialized signed node tags in hex (base64) format
- -debug.addr string address to listen on for debug endpoints (default
- -edit-conf open config in default editor
- -filestore.write-buffer-size memory.Size in-memory buffer for uploads (default 128.0 KiB)
- -forget-satellite.chore-interval duration how often to run the chore to check for satellites for the node to forget (default 1m0s)
- -forget-satellite.num-workers int number of workers to handle forget satellite (default 1)
- -graceful-exit.chore-interval duration how often to run the chore to check for satellites for the node to exit. (default 1m0s)
- -graceful-exit.min-bytes-per-second memory.Size the minimum acceptable bytes that an exiting node can transfer per second to the new node (default 5.00 KB)
- -graceful-exit.min-download-timeout duration the minimum duration for downloading a piece from storage nodes before timing out (default 2m0s)
- -graceful-exit.num-concurrent-transfers int number of concurrent transfers per graceful exit worker (default 5)
- -graceful-exit.num-workers int number of workers to handle satellite exits (default 4)
- -healthcheck.details Enable additional details about the satellite connections via the HTTP healthcheck.
- -healthcheck.enabled Provide health endpoint (including suspension/audit failures) on main public port, but HTTP protocol. (default true)
- -help help for setup
- -identity.cert-path string path to the certificate chain for this identity (default /root/.local/share/storj/identity/storagenode/identity.cert)
- -identity.key-path string path to the private key for this identity (default /root/.local/share/storj/identity/storagenode/identity.key)
- -nodestats.max-sleep duration maximum duration to wait before requesting data (default 5m0s)
- -nodestats.reputation-sync duration how often to sync reputation (default 4h0m0s)
- duration how often to sync storage (default 12h0m0s)
- string operator email address
- -operator.wallet string operator wallet address
- -operator.wallet-features wallet-features operator wallet features
- -pieces.delete-to-trash move pieces to trash upon deletion. Warning: if set to false, you risk disqualification for failed audits if a satellite database is restored from backup. (default true)
- -pieces.enable-lazy-filewalker run garbage collection and used-space calculation filewalkers as a separate subprocess with lower IO priority (default true)
- -pieces.write-prealloc-size memory.Size file preallocated for uploading (default 4.0 MiB)
- -preflight.database-check whether or not preflight check for database is enabled. (default true)
- -preflight.local-time-check 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. (default true)
- -retain.cache-path string path to the cache directory for retain requests. (default /root/.local/share/storj/storagenode/retain)
- -retain.concurrency int how many concurrent retain requests can be processed at the same time. (default 5)
- -retain.max-time-skew duration allows for small differences in the satellite and storagenode clocks (default 72h0m0s)
- -retain.status storj.Status allows configuration to enable, disable, or test retain requests from the satellite. Options: (disabled/enabled/debug) (default enabled)
- -server.address string public address to listen on (default :7777)
- -server.debouncing-enabled whether to debounce incoming messages (default true)
- -server.extensions.revocation if true, client leaves may contain the most recent certificate revocation for the current certificate (default true)
- -server.extensions.whitelist-signed-leaf 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.peer-ca-whitelist-path string 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-id-versions string identity version(s) the server will be allowed to talk to (default latest)
- -server.private-address string private address to listen on (default
- -server.revocation-dburl string url for revocation database (e.g. bolt://some.db OR redis:// (default bolt:///root/.local/share/storj/storagenode/revocations.db)
- -server.tcp-fast-open enable support for tcp fast open (default true)
- -server.tcp-fast-open-queue int the size of the tcp fast open queue (default 256)
- -server.use-peer-ca-whitelist if true, uses peer ca whitelist checking (default true)
- -storage.allocated-bandwidth memory.Size total allocated bandwidth in bytes (deprecated) (default 0 B)
- -storage.allocated-disk-space memory.Size total allocated disk space in bytes (default 1.00 TB)
- -storage.k-bucket-refresh-interval duration how frequently Kademlia bucket should be refreshed with node stats (default 1h0m0s)
- -storage.path string path to store data in (default /root/.local/share/storj/storagenode/storage)
- -storage.whitelisted-satellites storj.NodeURLs a comma-separated list of approved satellite node urls (unused)
- -storage2.cache-sync-interval duration how often the space used cache is synced to persistent storage (default 1h0m0s)
- -storage2.database-dir string directory to store databases. if empty, uses data path
- -storage2.delete-queue-size int size of the piece delete queue (default 10000)
- -storage2.delete-workers int how many piece delete workers (default 1)
- -storage2.exists-check-workers int how many workers to use to check if satellite pieces exists (default 5)
- -storage2.expiration-grace-period duration how soon before expiration date should things be considered expired (default 48h0m0s)
- -storage2.max-concurrent-requests int how many concurrent requests are allowed, before uploads are rejected. 0 represents unlimited.
- -storage2.max-used-serials-size memory.Size amount of memory allowed for used serials store - once surpassed, serials will be dropped at random (default 1.00 MB)
- -storage2.min-upload-speed memory.Size a client upload speed should not be lower than MinUploadSpeed in bytes-per-second (E.g: 1Mb), otherwise, it will be flagged as slow-connection and potentially be closed (default 0 B)
- -storage2.min-upload-speed-congestion-threshold float if the portion defined by the total number of alive connection per MaxConcurrentRequest reaches this threshold, a slow upload client will no longer be monitored and flagged (default 0.8)
- -storage2.min-upload-speed-grace-duration duration if MinUploadSpeed is configured, after a period of time after the client initiated the upload, the server will flag unusually slow upload client (default 10s)
- -storage2.monitor.interval duration how frequently Kademlia bucket should be refreshed with node stats (default 1h0m0s)
- -storage2.monitor.minimum-bandwidth memory.Size how much bandwidth a node at minimum has to advertise (deprecated) (default 0 B)
- -storage2.monitor.minimum-disk-space memory.Size how much disk space a node at minimum has to advertise (default 500.00 GB)
- -storage2.monitor.verify-dir-readable-interval duration how frequently to verify the location and readability of the storage directory (default 1m0s)
- -storage2.monitor.verify-dir-readable-timeout duration how long to wait for a storage directory readability verification to complete (default 1m0s)
- -storage2.monitor.verify-dir-warn-only if the storage directory verification check fails, log a warning instead of killing the node
- -storage2.monitor.verify-dir-writable-interval duration how frequently to verify writability of storage directory (default 5m0s)
- -storage2.monitor.verify-dir-writable-timeout duration how long to wait for a storage directory writability verification to complete (default 1m0s)
- -storage2.order-limit-grace-period duration how long after OrderLimit creation date are OrderLimits no longer accepted (default 1h0m0s)
- -storage2.orders.archive-ttl duration length of time to archive orders before deletion (default 168h0m0s)
- -storage2.orders.cleanup-interval duration duration between archive cleanups (default 5m0s)
- -storage2.orders.max-sleep duration maximum duration to wait before trying to send orders (default 30s)
- -storage2.orders.path string path to store order limit files in (default /root/.local/share/storj/storagenode/orders)
- -storage2.orders.sender-dial-timeout duration timeout for dialing satellite during sending orders (default 1m0s)
- -storage2.orders.sender-interval duration duration between sending (default 1h0m0s)
- -storage2.orders.sender-timeout duration timeout for sending (default 1h0m0s)
- -storage2.piece-scan-on-startup if set to true, all pieces disk usage is recalculated on startup (default true)
- -storage2.retain-time-buffer duration allows for small differences in the satellite and storagenode clocks (default 48h0m0s)
- duration how long to spend waiting for a stream operation before canceling (default 30m0s)
- string file path where trust lists should be cached (default /root/.local/share/storj/storagenode/trust-cache.json)
- trust-exclusions list of trust exclusions
- duration how often the trust pool should be refreshed (default 6h0m0s)
- trust-sources list of trust sources (default
- -version.check-interval duration Interval to check the version (default 15m0s)
- -version.request-timeout duration Request timeout for version checks (default 1m0s)
- run-mode Define the run mode for the version checker. Options (once,periodic,disable) (default periodic)
- -version.server-address string server address to check its version against (default
Global Flags
Flag Type Description
- -color use color in user interface
- -config-dir string main directory for storagenode configuration (default /root/.local/share/storj/storagenode)
- -db.conn_max_lifetime duration Maximum Database Connection Lifetime, -1ns means the stdlib default (default 30m0s)
- -db.max_idle_conns int Maximum Amount of Idle Database connections, -1 means the stdlib default (default 1)
- -db.max_open_conns int Maximum Amount of Open Database connections, -1 means the stdlib default (default 5)
- -debug.trace-out string If set, a path to write a process trace SVG to
- -defaults string determines which set of configuration defaults to use. can either be ‘dev’ or ‘release’ (default release)
- -identity-dir string main directory for storagenode identity credentials (default /root/.local/share/storj/identity/storagenode)
- -log.caller if true, log function filename and line number
- -log.custom-level string custom level overrides for specific loggers in the format NAME1=ERROR,NAME2=WARN,… Only level increment is supported, and only for selected loggers!
- -log.development if true, set logging to development mode
- -log.encoding string configures log encoding. can either be ‘console’, ‘json’, ‘pretty’, or ‘gcloudlogging’.
- -log.level Level the minimum log level to log (default info)
- -log.output string can be stdout, stderr, or a filename (default stderr)
- -log.stack if true, log stack traces
- -metrics.addr string address(es) to send telemetry to (comma-separated) (default
- string application name for telemetry identification. Ignored for certain applications. (default storagenode)
- string application suffix. Ignored for certain applications. (default -release)
- -metrics.event-addr string address(es) to send telemetry to (comma-separated IP:port or complex BQ definition, like bigquery:app=…,project=…,dataset=…, depends on the config/usage) (default
- -metrics.event-queue int size of the internal eventkit queue for UDP sending (default 10000)
- -metrics.instance-prefix string instance id prefix
- -metrics.interval duration how frequently to send up telemetry. Ignored for certain applications. (default 1m0s)
- -tracing.agent-addr string address for jaeger agent (default
- string application name for tracing identification (default storagenode)
- string application suffix (default -release)
- -tracing.buffer-size int buffer size for collector batch packet size
- -tracing.enabled whether tracing collector is enabled (default true)
- -tracing.interval duration how frequently to flush traces to tracing agent (default 0s)
- -tracing.queue-size int buffer size for collector queue size
- -tracing.sample float how frequent to sample traces

PS: I will try to keep this updated to the latest version.

Credit: Original idea of @snorkel


For beginners, would be usefull to show the possible values or some examples, like true/false, info/warn/error, 20m15s, 500TB, 100MiB, etc., and where they can be used: before or after container name.

1 Like

Kind of the only one you need, as this will show all the others. :slightly_smiling_face:

This works for all Storj binaries and for subcommands as well.


Yes, but here it can be completed with more explanations and examples of use (an extra Details column), plus discussions.

That’s true for Linux users. Windows users like things shown in nice, tabular format. :nerd_face:



Linux users will be frantically typing man storagenode and mumbling something about how hard was it to implement man pages.


… windows users should cease clinging to the past and embrace the modern operating systems that don’t suck, don’t have registry, don’t shove advertising into to the users face, start menu, and dock, don’t force them to create fracking Microsoft account to install the os, and generally work.

I’ll show myself out


They already move back to Windows 10. Win 11 losses popularity by the hour.

I keep wondering how it is possible that using a Windows server license is a financiable way to host a node…


I made it a wiki for the future, I hope that the Community will keep it updated, otherwise you always can run storagenode setup --help

  • -retain.cache-path

What exactly is a retain request?

Its the bloom filters. Its what is used to determine what files to keep, and thus what files the garbage collection should move to trash. The cache allows the garbage collection process to continue if you restart your node in the middle. This is new to 1.104.5 i believe.

Gotcha, and what about - -retain.concurrency?

(post deleted by author)

– help would be the most up to date, but there are 2 posts that complete eachother with more explanations.

this one is most recent for your version.

How many concurrent retain processes can be run simultaneously (roughly - how many satellites can be processed in parallel).

1 Like

I changed from 5 to 1. I think is a safer setup for a multinodes system

Whouldn’t this be 1 as the optimum number?
I imagine if you have 2 or 3 running in the same time, they will influence eachother and won’t get things done faster than 1.

It depends. I didn’t change it and everything is working, all on 1.102.3 and moved 2.7TB to the trash.