Disclaimer: I don’t run a STORJ node anymore. So some of my knowledge might be outdated. For example, there was no hashtable back then (2 years ago).
The technical part:
Storj was (still is?) surprisingly bad from a technical standpoint.
One reason for that might be the unclear focus (will go into that later).
For example, even I as a total noob realized that it makes absolutely no sense to use sync writes for an application like Storj. But despite these comments in the forum, it took them years to realize this. This tells me that the devs there don’t know much about storage. Which is a little bit concerning when you try to be a distributed storage company.
Anyway, I also ran it from a single 16TB SMR drive on Windows first (worked fine). After that, I switched to TrueNAS with a RAIDZ2 and later on to another TrueNAS with RAIDZ2 and svdev.
Storj uses many small files. So having svdev helped with scrubs, and maybe even a little bit with success rate.
I don’t know if L2ARC would also work fine for Storj, or if the files are too small and eat too much ARC.
Dataset config was sync and atime disabled, recordsize set at 1MB, everything else default.
The none technical part:
You don’t have to read this and can jump straight to the TLDR if you want.
The economics. Or why you should not buy hardware!
In the beginnings of STORJ, two points were very much emphasized:
A: Only use unused storage
B: Don’t run any form of RAID
Reason for these two points was simple.
A: The USP of Storj, the ONLY advantage Storj has over centralized storage (because decentralized storage comes with a LOT of disadvantages) is that it uses ONLY unused storage and bandwidth.
It can’t and will be able to compete with AWS or Backblaze on price, if the underlying hardware is not for free.
B: Since only 23 out of 60 chunks or something is needed for the file to not be lost, there is no need for your pool to stay online. So instead of running RAID which comes with a parity cost, you should rather just use single disks, each with a pool. If all are full, you add another disk and run another pool. If one dies, it does not matter.
Unfortunately, subsidies came along. And like almost always, they make stuff worse.
In the beginning, they paid node operators stupid amounts like $20 per TB. That led users to forget point A, and people started to buy hardware in the hopes of future returns.
But the even bigger problem was that Storj never had any real growth.
They don’t have customers. The amount stored on the network is to this day laughable.
This resulted in nodes not getting filled.
So all of a sudden, point B also became a problem. Sure, it does not matter if my 8TB drive dies, but if it takes 2 years (!) to fill that 8TB again, a RAID all of a sudden becomes sexy.
It also led node users to use VPNs so they get multiple IPs. Which is a little bit dangerous, considering it undermines the distribution part.
The situation was so bad that Storj even faked growth with “test data”. When the first price cut happened and test data got deleted, nodes were pretty angry.
Later on, a large potential customer ran some tests. This was the first time we had actual usage in the network. The pressure showed that there are a lot of potato nodes that trip over under the smallest load.
Who should Storj be for? And why are there no customers?
If you enter Storj from the outside and look at the business model, you might assume that the focus is pretty clear. Your strength is cheap storage. You are not a CDN, and you don’t have storage inside of datacenters like Hetzner, AWS, or Azure.
So a perfect use case for Storj would be a relatively slow backup solution. An alternative to Backblaze B2. But they never undercut Backblaze in pricing. So no customers came from that part.
Instead, they claimed to be the best of all worlds. Comparable to Amazon S3 or CDN or other object storage.
There are some problems with that.
S3 does not run natively on Storj. There are Storj S3 gateways, run by Storj, that use the Storj network as their storage backend. In the beginning these were, and I am not joking, AWS instances.
That comes with huge problems. These endpoints are not decentralized. It of course also hurts performance (peering). And contrary to popular wisdom, traffic is not cheap!
For a CDN, they are way too expensive. Cloudflare has their new offering with free unlimited traffic. Storj can’t compete with that, they pay nodes for traffic.
For VPS object storage, they are just too slow when outside the datacenter. Not their fault, but also nothing you can do about it.
Now, here comes a part where this is connected to TrueNAS again.
Remember that both companies claimed to be in a great partnership?
This part is so bad, it is almost comical 
Even TrueNAS does not use native Storj but S3.
Yes, even their poster boy partner TrueNAS was somehow too lazy or unwilling (for good reasons) to implement native Storj and went with S3 instead.
And did you ever wonder why the TrueNAS downloads and updates got so slow in recent years? Well, they switched to Storj for that, you know the network that is “faster than AWS and Cloudflare” /s.
Why is Storj still alive?
Call it subsidies, call it VC money.
The fact is, Storj had brilliant timing when it comes to money.
In the ICO phase, they launched a Storj coin. That money started to run out recently.
Luckily for them, the AI bandwagon came along and they got bought by Inveniam.
The current focus never made sense from an economic standpoint, and they always lost money left and right with the excuse that Amazon also lost money in the beginning. They always made growth promises and talked about potential customers, but there never was substantial growth, despite Storj no longer being a startup in its infancy.
TLDR: whatever you do, and no matter how much I disagree with Storj, in one point we are on the same page. Never buy hardware to run Storj! Only use unused resources.