yeah but it also bears the question of who is going to pay for the extra egress the nodes have to do? Currently it’s free for the customer to upload a 1GB file (2.7GB of data) and nodes just have to download it and as download bandwidth is a lot higher than upload it doesn’t matter. But if nodes now also need to upload all the pieces to other nodes, they generate 2.7GB of egress. Who’s going to pay for that?
Additionally, this moves certain problems from the uplink to node. For example bandwidth constraints. The client uploads 1GB to e.g. 10 nodes, so 100MB per node. Now it is done but has to wait for the confirmation of those nodes to have the data distributed. So those 10 nodes now have to create the shards first, but that should not take long. However, now each of those 10 nodes needs to upload 270MB to other nodes. So even if they all saturate an upload bandwidth of 5MB/s (I guess most home users won’t have more), it would still take 54 seconds! That means the customer has to wait for 54 seconds doing nothing. Try explaining that to a customer… You can of course make that better by uploading to more nodes but it doesn’t scale perfectly. You can’t just upload to 100 nodes as the resulting filesize would be way too small after creating 80 shards.
I guess such a system would work for the repair job. Satellite downloads shards, creates new shards and has the hashes for comparison. Now it sends the job to a node, which downloads all pieces as well and uploads the shards to other nodes, which send their hash to the satellite for comparison. That means, the satellite saved 2/3 of its bandwidth but the shards get downloaded twice, so more money for the nodes ![]()