Community Satellite Spiridon is back

I am glad to announce that my original Community Satellite (Spiridon) is resurrected as https://spiridon.space.

What is it?

A community satellite strictly for Storagenode Operators. Helping them to use their own (!!!) space. It’s useful for you only if you have a bigger Storagenode pool, and you would like to use it by yourself. No money, no payment. You can use majority of your space (10 TB / 2% is reserved for system usage) with the durability of Storj (Erasure Coding, repair, …).
That’s an upper limit for foreign data which might be used for your disk.

Your upload, your storagenodes, your space, only satellite is provided as a service.

How to join

You need to set STORJ_STORAGE2_TRUST_SOURCES environment variable in your docker compose file.

  1. If you have no such config, add both the default, and the community satellite
    STORJ_STORAGE2_TRUST_SOURCES=https://www.storj.io/dcs-satellites,storj://1NusSk8HjWppghiWvofEBDqryDaxiALPah8EyRxXWdNkwXg7ai@spiridon.space:7777

  2. If you already have this settings, just append ,storj://1NusSk8HjWppghiWvofEBDqryDaxiALPah8EyRxXWdNkwXg7ai@spiridon.space:7777

Requirements

  • At least 20 storagenodes with distinct IP addresses
  • Same email address for all the nodes
  • Same wallet for all the nodes
  • At least 10 TB space allocated for the system: min(10TB, 2% of the allocated space)
  • At least 2 weeks of wetting period

How can I register and use the satellite

Join with enough nodes, and you will receive an invite. Make sure you use the same emails for your own nodes, and have at least 20 nodes and at least 10TB free space.

What is the price of using Satellite? What is the price of the space

Currently I am running it for free. You will pay with free space. The system will use max(10TB, 2% of allocated space) for certain purposes.

All the remaining space can be used. But you will use only your own Storagenodes, not a shared pool. If you have 500TB of free space, you can use 490TB for your own, with proper erasure coded upload / download.

The satellite is running on average hardware. To keep it usable for all users, reasonable limits will be applied. The goal is to make it usable for fair, personal usage, but keep the server usable for everybody. It’s running on lighter nodes compared to storj.io satellites, I have no idea where is the limit.

(Long-term we can consider to scale it up, if there is a demand, but probably on from donation. I can afford the current size)

Do you pay to Storagenode Operators for used space

Nope. But I make it possible to use your own unused space.

There is no plan for selling the offered reserved space.

How about durability

The system is running on RAID1 + having daily database backup. One single node. You will store data on your own storagenodes.

If you need higher durability, I strongly recommend the official storj.io service (all databases are running on multiple physical nodes with quorum. All data is saved to storagenodes of multiple providers).

Why do you do it?

I have multiple motivations:

  1. I would like to express my gratitude to the SNO community. Lot’s of players are still here despite the difficult time (Hello, Chapter 11).

  2. I am also interested in different kinds of experiments. It’s too risky to change official servers. I would like to try out new interesting things and see how they can work.

    • Examples: more modular setup, additional, custom modules. Maybe wallet based login. Maybe a GRPC gateway. Or telegram based notification bot, similar to what the original spiridon community satellite offered. Not sure yet.
  3. I am interested in exploring the flexibility of the current modular approach. An additional possibility with multi-tenancy.

Is it open source?

Of course. Respecting the licence of storj/storj and storj/edge, all changes will be published to my fork (GitHub - elek/storj: A fork of github.com/storj/storj · GitHub). All generic and useful changes will be submitted upstream.

Why do you do it only for big operators?

The current code doesn’t really support dynamic placement rules. I need to do a lot of manual work. I would like to start with a limited number of users.

The current erasure coding settings require at least 16 nodes.

Long-term, I would consider introducing different usage plans / reducing requirements. Like a shared space pool. But let’s start with something simple.

If you have less nodes, but still would be interested, let me know. Describe what kind of durability do you expect (example: surviving the outage of one disk).

I also have limits with the external services what I am using (example: 100 mail / day).

Why do you need 10+ TB?

To be honest, I don’t need it. But this can help me:

  1. To upload initial data to make audit system working
  2. To prove that there is real space behind the IP addresses (not just 20 proxy nodes + one 10TB disk)
  3. It can also make some experiment possible with a shared pool (10+TB for each of the operator)

But I am considering changing this long-term. It’s more like a guarantee. No more than this amount will be stored on joined storagenodes.

Is it a storj.io competitor?

Definitely not

  • you couldn’t buy space here with money (just with operating SNs)
  • durability is limited and depends on the user
  • my main focus is still keeping our business alive. This is more like an interesting experiment together with the community. Stronger community is better for the official business, too.

Awesome idea! Large SNOs can have most of their space still on Storj (earning money)… but then carve out a little pocket of it for their own use. They get the node-failure-protection of erasure encoding… but know their own backups stay on their own hardware.

Thanks for running it!

So my data will only go to my nodes? If so I would rather setup my own satellite. Or did I misunderstand that part? :thinking:

I remember the time where you offered X GB of your space and you could use for example X/2 GB to upload your backups to other people’s drives and all of this for free of course.

I’m still wishing storj would do that…

It has always worked like this. I store 11 TB of Storj data, and Storj stores 3.5 TB of my data. I pointed the payout wallet to account wallet, so no hassle with crypto for me. It worked that way for years, the amount on my account was steady or slowly raising, around +0.5 USD / month.
Unfortunately, it does not work since the last price changes, my credit dropped to zero in two months and the income is far from covering the fees. Even though I still have free space my 2 nodes never make it over 11 TB in total, so the process is not working for me any longer and I will have to move somewhere else.
Spiridon I’m not able to reach, missing 19 nodes :grin:

The 20 nodes can use a single HDD but 20 IPs is not that easy. :wink:

Would you share one node with me? If 20 people host one node for each other, 20 in total, we will make it :face_in_clouds:

Your understanding is good. If you are comfortable to host a patched satellite with all the microservices and disabled enterprise component + monitoring: I would recommend to do it yourself. It’s always more fun + you don’t need to use egress from your datacenter.

This experiment is for people who are more comfortable to host storagenodes only.

I have two comments:

  1. I am considering to offer something similar: shared pool where everybody can share space with each other based on usage. But to make it safe, it requires 100-200 operators at least to be joined. If it happens, I will configure placements.

  2. “I’m still wishing storj would do that…” . That’s one reason why I do it. Storj Labs doesn’t know what would be used by many people… Any experiment requires resources. I can do experiments more easily. But if any part is successful, I can convince my college to adopt some patches (for example to show your own nodes on storagenode website). It doesn’t make sense to put all feature ideas immediately to storj.io, but it makes sense to give it a try.

Thinking one step bigger… I can imagine a community that hosts its own storage (like hard-to-find anime, or something). Each person who proves they’ve added some storage-to-the-pile gets read access to that private community S3 bucket or something.

Old-fashioned file sharing, with extra steps! :winking_face_with_tongue:

That’s a very good idea.

For me (as an operator) it’s very hard. I couldn’t guarantee durability with such a group. If enough people leaves, data can be lost.

But if you form a trusted groups (the risk is yours), I can just manage the groups.

Not sure about how it can be initiated (maybe with self signed tags?), but I will think about it.

I already did and yes it was fun…But for my little backup needs it turned out to be overkill. I mean for a 1..3 disk outage protection I can just setup a ZFS pool.

Somewhere out there is a SNO who moved all their nodes to ZFS, added special-metadata to keep lookups speedy, and forced everything to hashstore before the Satellites even asked. They have a perfect low-maintenance high-performance setup…

…and now after all that work… they’re hoping Storj stays alive. :weary_face:

I’ve question about this section in TOS:

If the upload is only go to their node, why is it not allowed to sell/resell their space? It’s their storage after all?

It’s their Satellite: they don’t need a reason for their Terms.

But if they’re not charging you to use it… it seems reasonable you’re not going to resell it and add to their load while you pocket the cash?

It’s open-source: run your own Satellite and charge what you want! :money_mouth_face:

I agree with the first half, no need reason for Terms. But there is a small charge:

The system will use max(10TB, 2% of allocated space) for certain purposes.

Could charge bigger but in exchange - allow user to sell their own space?

Maintaining metadata also has costs attached. Consider that just for preparing bloom filters, the main network had to order a dedicated high-memory machine.

That is on server side, memory could be using FAMFS (Fabric-Attached Memory File System) in the future to scale out instead.

That what not this is about, it not flourishing to storj protocol if prevent people from advertising about this technology. This is what I’m worry, but each to their own I guess.

Yep, and maybe the satellite operator doesn’t want satellite resources to be commercialized this way.

There’s no restrictions: anyone can run a Satellite and advertise it and sell capacity.

But what you seem to be asking about… is selling other peoples compute power. Don’t treat them poorly - sell your own :winking_face_with_tongue:

No I’m not, I suggest take higher fee.

About satellite, in the source code already have Satellite as a Service, I didn’t look at it yet, but maybe I’ll do that in the future.

TBH, I think people like their own sovereignty more, that why I wrote the tutorial first, but maybe it too time consuming for some..

P/s: actually not true, I was thinking I would just share my experience when set up the satellite, I don’t even think about Satellite as a Service or aware of it in the first place.