It can, or it can keep them in storage in case the new node dies and the responsibility is widened again. It won’t be punished for deleting data it is no longer responsible for.
Price will go up exponentially when nodes are close to full. But high price means high rewards for running a node => people will run more nodes.
Nodes are paid for storing new chunks. But also node has to store existing chunks from part of the XOR space. If node fails to do so, it is kicked out from the network (which makes it unable to earn).
That’s what I’m trying to get a better picture of: the current design, specifically the work/reward part of the design. Basic question: will it always be rewarding for a node to continue storing and fetching data for the network, for it to continue to offer its storage allotment?
The issue I see with fixed node sizes + paying all nodes for uploads + exponentially increasing prices with fullness is that outlying fuller nodes will be rewarded disproportionately vs other nodes, and particularly small uploads may face a huge variety of store costs (e.g. one 50kb file costing 5x another 50kb file due to one hitting an address space with some fuller nodes in).
Ideally fuller nodes would either be encouraged to extend storage to bring store cost towards average, or restart.
Is this the case though? Does one node joining free up space in another node? Is a node’s address space somehow dynamic? I seem to remember that it is fixed, but could be wrong.
It always should be, because storing new data is how a node earns, and it should be kicked out if it doesn’t carry out all of its responsibilities, including fetching data on request. But, for this to work optimally nodes need to be able to adjust supply to match demand.
I’m unclear as to whether the mechanisms are currently in place to allow nodes that are above average fullness to respond by increasing available space or facing dropping rewards vs less-full nodes so be encouraged to restart & get a new address space.
Imagine node A, it knows next node is G so nodes A responsibility is A-F.
When node C joins it takes responsibility of C-F and responsibility of A is reduced to only A-B
I think currently only one node gets paid (the cheapest one maybe). We will have to wait for someone from the devs to shed more light on this.
The answer i received when i asked this question is that when a new node appears it will take some of the chunks from other nodes.
A chunk will be stored in the 5 closest nodes to its XOR address. A close node is determined by its ID and the chunk XOR address.
So when a new node appears and it “absorbs” the close chunks to its ID it has the result that for each of those chunks there will be another node that is no longer a close Node and thus that node can remove that chunk.
The result is that across the network based on random IDs & relatively even distribution of chunk XOR addresses that nodes will have fairly close count of chunks its supposed to be storing.
While the testnets basically just fill up due to limited number of nodes and most new nodes appear towards the beginning, I’ve been assured the above process will be the norm for the real network where nodes are offloading chunks as closer nodes appear for some of its chunks.
And not be paid? Presumably, a new node will join the network under the premise of being paid for storage. Won’t the operator of the new node be concerned that he wasn’t paid for these relocated chunks?
Every node that joins will have the overhead of storing data they won’t get paid for before they can accept new, paid-for chunks.
New nodes join with the premise of being paid, and those payments will come from new data being stored. But that won’t happen if they don’t carry out the required tasks of being a node, including holding existing data that they’re given responsibility for when they join.
On the surface, that sounds like a large condition for potential node operators to accept, and to be fully educated about in a succinct, transparent manner. The ratio, I think, of paid-to-unpaid storage will be important, as will be the time frame involved. How long will they have to wait before receiving paid chunks? I understand everything is speculative right now, but to me, the overall design should be fairly clear and then the execution of the design should follow.
It’s a market. People can take it or leave it, and at some price it’ll be worth someone’s while to provide nodes at an upload cost others are willing to pay to store data.
I believe it is more complicated than that. In a market such as the stock market or crypto market there is a bid and ask process that is current and precise but there are no nebulous hoops you are expected to jump through such as how much free storage you are required to accept before getting paid chunks, or how long that process will take. All I’m pointing out is that the Safe Network basic proposal sounds like it might be a tough sell.
If you want to run any kind of crypto node there’s an overhead involved (e.g. storing a blockchain, processing, provision of resources etc). A Safe node isn’t particularly different in that respect from what I can see.
A lot of people used to (and perhaps still do?) share files through P2P file sharing systems like Gnutella without any payment. I think the ease of running a node and the utility of it will make it worthwhile for quite a lot of people. How popular it becomes remains to be seen, but if it works well, I expect it’ll be pretty useful for a lot of people, and many will be happy to earn SNT that they can use to put data on the network in exchange for running a node.
It’s the reward structure that’s problematic to me. Running other crypto nodes (farming, mining) is more straight-forward. You provide work or stake and you receive a measurable reward. It’s different with Safe in the design being discussed, much more immeasurable for the amount of time, effort and resource you are being asked to commit to.
I think the difference is because it’s a market for resources. Most crypto nodes get paid by diluting a token supply. In the Safe network users pay to store data, and others get paid for storing & hosting it.
Because it’s a market, until it’s settled, nobody can know what the reward will be, so it can’t have a predictable yield etc. It’ll just depend on demand and supply.
I don’t see it as problematic as long as the correct incentives are in place for the market to function well.
Expecting node operators who are probably not well versed in the history or goals of the network to be willing to provide free storage before being paid anything. That’s the problem I foresee. And, then, somehow, trying to explain that to them succinctly and successfully.
Not true. Bitcoin mining (and many other coins) is probabilistic, you can mine for a loooong time and see no reward. Safe node will be very small, with decent connection a node will sync all the data in few minutes.