Storage Node

The Docker container that has the software you need to run your storage node.

Download the Storage Node Docker Container

docker pull storjlabs/storagenode:beta

Storage Node Concepts

Before running your Storage Node for the first time, please note the definitions of the parameters to be used.

Parameter

Description

WALLET

your address to receive STORJ token payouts for running the node. Learn how to obtain a valid payout address.

EMAIL

email address so that we can notify you when a new version has been released (recommended)

ADDRESS

external IP address or the DDNS you configured and the port you opened on your router <ip>:<port>

If you are using a custom port other than 28967, you have to change the -p 28967:28967 to -p <port>:28967

BANDWIDTH

how much bandwidth you can allocate to the Storj network. Be sure to allow for other use cases you have for your internet connection, and do not allocate more than your ISP supplied up and download speed can physically supply. To calculate the maximum monthly BANDWIDTH you can enter here, follow instructions here. The minimum bandwidth requirement is 2TB.

STORAGE

how much disk space you want to allocate to the Storj network

Be sure not to over-allocate space! Allow at least 10% extra for overhead. If you over-allocate space, you may corrupt your database when the system attempts to store pieces when no more physical space is actually available on your drive. The minimum storage shared requirement is 500 GB, which means you need a disk of at least 550 GB total size to allow for the 10% overhead.

<identity-dir>

replace it to the location of your identity files. You can copy the absolute path from the output of the identity commands you ran earlier.

<storage-dir>

replace it to the local directory where you want files to be stored on your hard drive for the network.

Note: the current database backend is BoltDB, which requires mmap, hence you have to use a file system which supports mmap.

Running the Storage Node

1. Copy the command format appropriate for your OS into a text editor:

Previous versions of thedocker runcommand that used the -v rather than the --mount option will not work properly. Copy the updated command below.

Windows
Non-ARM and ARM based platforms
docker run -d --restart unless-stopped -p 28967:28967 -e WALLET="0xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -e EMAIL="user@example.com" -e ADDRESS="domain.ddns.net:28967" -e BANDWIDTH="20TB" -e STORAGE="2TB" --mount type=bind,source="<identity-dir>",destination=/app/identity --mount type=bind,source="<storage-dir>",destination=/app/config --name storagenode storjlabs/storagenode:beta

On Windows, you need to format the paths using double backslashes: D:\\identity\\storagenode\\ or D:\\data\\

docker run -d --restart unless-stopped -p 28967:28967 \
-e WALLET="0xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
-e EMAIL="user@example.com" \
-e ADDRESS="domain.ddns.net:28967" \
-e BANDWIDTH="20TB" \
-e STORAGE="2TB" \
--mount type=bind,source="<identity-dir>",destination=/app/identity \
--mount type=bind,source="<storage-dir>",destination=/app/config \
--name storagenode storjlabs/storagenode:beta

2. Edit the WALLET, EMAIL, ADDRESS, BANDWIDTH, STORAGE, <identity-dir>, and <storage-dir> with your parameters.

3. Copy the updated command.

4. Run it in a terminal window.

5. You're officially a storage node operator! 🎉