Windows Storj node best practices Wiki

I’m trying to compile a little list of some easy to follow best practices for running a Storj node on Windows. None of these steps are mandatory to run a node, but following them helps to rule out potential causes of error, which can be quite a big deal in the long run.

These tips do mostly not depend on each other, so feel free to only follow the ones you deem worthy :wink: This list is not sorted by relevance.

1. Set up time sync

  • Windows does automatically sync its system time periodically, but it is best to use an external software to sync system time more frequently
  • download the NetTime tool from https://www.timesynctool.com/
  • install and set up with your favorite NTP server (or just stick to default settings)
  • make sure the tool is being ran on Windows startup

2. Allocated space overhead
in progress

3. Disable write caching on HDDs

  • when an unexpected power off occurs (e.g. due to a power outage or someone tripping over your node’s power cable), data that is still in your HDD cache or Windows write cache will be lost, which can lead to data corruption
  • disable both hardware and software write cache as follows:
    – right click the drive with your node data on it in Windows Explorer and select “Properties”
    – go to “Hardware”, then “Properties” again (at the bottom)
    – click “Change Settings” to have the “Policies” tab appear
    – uncheck all the caching options
    – save and quit
    hdd_cache_german

4. Move identity files into data directory (to prevent starting with faulty data and getting DQed)

  • when your node starts up without read access to the data directory, it will fail audits and get DQed
  • this might happen when your node data resides on an external drive that is disconnected, but your identity files are still readable because they sit on the internal system drive
  • putting your identity files inside the node data folder prevents the node from starting in case the destination is not accessible
  • when moving your identity files to another location, you have to edit the config.yaml to reflect for that change

5. Set up external online status monitoring (e.g. uptimerobot)

  • you can use an external service to check if your storage node is online
  • a tool like UptimeRobot will check if your node’s network port is open and notify you if that is not the case
  • create an account on https://uptimerobot.com/ (this is not a reflink) and set up node monitoring like so (I use the free option of receiving a Telegram message when the node goes offline):
  • another neat monitoring software to check out is Uptime Kuma, which you can host yourself if that is your cup of tea

6. Avoid USB connections whenever possible

  • while USB connected HDDs work well for scenarios where you plug in the drive and then do copy actions (e.g. backing up files), the connection is often not stable enough to be connected 24/7
  • if you aren’t running your storage node on a limited device like a Raspberry Pi with no SATA ports, you should always prefer connecting drives directly to the motherboard via SATA
  • when still using USB drives, make sure that any power saving options for those drives are disabled in Windows

7. Configure your computer to automatically boot unattended after a power failure

  • the storage node software for Windows runs as a service, so it will start whenever your computer boots Windows - even when you are not logged on
  • however, you should make sure your computer automatically starts after being shutdown unexpectedly (note that this only helps when your PC is being powered off, not when being send into standby!)
  • in your PC’s UEFI/BIOS setup, look for an option called “Power state after power loss” or similiar and enable it:
  • some computers will not boot to Windows when there is no keyboard attached to them - most of the time this can also be fixed by a UEFI/BIOS setting
  • you can test if your machine boots up after a power outage by doing the following:
    – shut down the computer
    – remove the power cable from the PSU (or use the hard power switch on the PSU)
    – wait 10 seconds
    – plug the PSU power cable back in (or use the hard power switch on the PSU)

8. Do not use exchange addresses for payout

  • this has been said a lot, so you might already know it is best to avoid using crypto exchange addresses to receive your Storj payouts :slight_smile:
  • use a wallet capable of ERC-20 token handling and direct your payouts there
  • configure the payout address in your node’s config.yaml by modifying the following section:
#operator wallet address
operator.wallet: 0x11111111111111111111
  • keep backups of the private keys to your address

9. Configuring Windows power saving settings

  • to prevent the computer from going to sleep (thus stopping node operation), disable automatic stand-by in Windows power settings
  • you have to do so for each individual power plan you intent to use

10. log redirection and logrotate


I would love more ideas from you guys, also if someone wants to write up a more detailed explanation of any of those sections that i can edit into the post, that’d be great :slight_smile:

Also, please point out any grammar/formatting/other mistakes so I can fix 'em.

Imho such a list has the potential to go into the official documentation as an extra step after the basic storage node setup.

7 Likes
  1. Switch to Debian with cinnamon. Cinnamon will make the transition easy and Debian is the perfect OS for running a storage node. Are you able to switch? If not the following guide will help you to get the best results out of a Windows storage node but even with all these settings, a Debian node would still be better.

  2. If you have to use external USB drives disable power-saving mode. Oh and you have to modify the power saving settings of your windows OS in general right? Otherwise, it will go into hibernate after some idle time.

  3. Maybe opt in zkSync? It is not a must-have but the operator should know that the option exists.

  4. Email alerts with Grafana? How difficult would that be on Windows?

Best would be to order the list by priority. Email alerts should be right under the uptime robot.

  1. Logrotate. Yes it also works under Windows.

  2. Disable atime? Is that possible with Windows?

3 Likes

This would require a reinstall of my entire machine including Chia, CPU miner, GPU miner…so it might not be for everyone (including me) :wink:

I will consider this when doing the write-up about USB connections :+1:

This is ofc a lower priority, but I might add it in later on.

I would love someone else writing about this.

Will add that asap.

I don’t even know what that’s supposed to be :smiley:

Thanks for your input, mate!

1 Like

disable indexing of the drive used for Storj?

2 Likes

While I don’t do that myself, I might also add it in.

Thank you!

On the 5 Windows machines I checked, drive indexing for data drives has been switched off by default :slight_smile: