A couple more comments from me!
To your point about trust and reputation, one of the design goals from the beginning of Storj v3 is that trust and reputation is largely a human thing.
There’s two sides to trust. On the customer side, Satellite operators are going to need to advertise their trustworthiness to their customers. This could be full on advertising (like ads, though without running afoul of misusing our trademark and branding), or as simple as “hey, I’m your family member, want to use this Storj OSP Satellite I set up for file storage?”. Some entities might have a head start on trust. I imagine people might consider signing up for an Internet Archive Satellite or a Mozilla Foundation Satellite before they consider signing up for Bob49183’s Satellite.
On the storage node side, community Satellites are not going to just automatically be trusted by storage nodes by default. The only Satellites a fresh storage node installation will trust are in https://www.storj.io/dcs-satellites. Satellite operators will have to persuade storage node operators to add their Satellites to their trust list, and of course, storage node operators will be eager to delete Satellites that don’t hold up their end of the deal.
This second part sounds really complicated and time consuming, so we made the concept of trusted Satellite lists (the new one at https://www.storj.io/unpaid-community-satellites). Now, instead of managing a full list of Satellites you trust as a storage node operator directly yourself, you can delegate that trust to a list operator. Anyone can run their own list of trusted Satellites. Perhaps @deathlessdd you want to start your own list of curated community Satellites, and if you do a good job at maintaining a list of healthy Satellites, storage node operators will trust you and add your trusted list. Then, Satellite operators will only have to persuade you to get added to your list, instead of every storage node operator. You might have a certain set of requirements, just as I’ve alluded to how https://www.storj.io/dcs-satellites will have really strong requirements, but https://www.storj.io/unpaid-community-satellites doesn’t currently. I expect we will start more trust lists as we get more familiar with community Satellites together. An obvious one to start would be one for paid-community-satellites,
In summary: here are all the different actors in the Storj community:
- Storage node operators - we all love them!
- Satellite operators - new! so far, Storj Labs has been the only Satellite operator, which does call into question the network’s decentralization.
- Edge service operators - we’ll add more assistance during a later phase, but anyone can set these up too.
- Trust list operators - new! so far, we’ve been the only one, but anyone who can serve a text file over HTTPS can become one. This is not the same as a Satellite operator! A trust list operator is largely going to be operating with human language more than code and protocols, but it’s still just as important of a job!
Yep, we’re early. We don’t have documentation for this yet! We’re looking for some development-minded early adopters to help flesh this out actually. Here is what we have so far:
First, we have our development instructions of how to run a test network: docs/Test-network.md at a330d6526c0857363a903bebbb04cf7344f9648b · storj/docs · GitHub Of course, this includes the Satellite, so this is definitely a start.
Second, we started development on a wizard for Satellite setup here: https://review.dev.storj.io/c/storj/storj/+/9523.
Volunteers wanted!
I don’t know if my comments about trust covered this sufficiently for you, but the fact that not every Satellite is automatically trusted by storage nodes, and storage node operators must explicitly add a Satellite to their trust list (perhaps indirectly through a curated list) is a huge barrier to entry. I actually feel pretty good about this.
One thing we’ve discussed is having a foundation (that includes non-Storj employees) run one of the community Satellite trust lists I mentioned earlier. This could be the group that “approves” Satellites for inclusion on a specific community Satellite trust list.
We’ve discussed having Satellite operators put collateral to a trust list operator in escrow of some kind to cover this. Certainly different trust list operators could handle this differently.
I mentioned limits in the launch announcement, and you’re right, I probably should have said something about this. Storage node operators should be extremely cautious about adding brand new Satellites with no history to their trust list. Trust must be earned, and hopefully that is something you get from a well known trusted list. One of the code changes we want to make is that Storage Nodes will limit their exposure to new Satellites, kind of like how Satellites limit their exposure to new storage nodes during the vetting process.
We’ve thought very hard about this too. At this point we believe the benefits outweigh the risks, which is a similar decision that many other open source companies have concluded, too.
This is why it’s really important the uplink is open source! If you get an uplink from a well known source that uses end to end encryption, even a malicious Satellite operator can’t get your data.
Agreed, right now all we have is the configuration file of the trusted sources. I do think the trusted sources list is actually a key innovation to making this work, but I also agree that a storage node operator should be able to click a button and kick a poorly behaving Satellite to the curb directly. Kicking poorly behaving Satellites out of trust lists is probably even better, but we do want to empower SNOs directly.
You’re right, this is the start of the next phase of our experiment! Community Satellites are kind of like where we were with v3 storage nodes back in January 2019. It’s a bit of the wild west, but I think it’s best to involve the community in this step.
One final note to point out to everyone is that we actually covered some of this in our whitepaper 5 years ago! Make sure to check out section 4.21 in https://www.storj.io/storjv3.pdf. The thing that has changed is that “Tardigrade” is now called “Storj DCS” and “Storj” is now called “Storj OSP”.
Did any of this help?