I’m going off the road with this one. Hopefully people will be able to follow. This is for those who already have a general understanding of Network routing. I’ve watered down the technical descriptions to stay on point. Some of my knowledge may be outdated. I’ve been away for awhile.
Stage 1 Infrastructure
The SAFE Network identifies 2 types of node connections.
- Non-Client Node = a node that is part of the Network infrastructure. Uses more resources like a server.
- Client Node = a node that is not part of the Network infrastructure. Uses minimal resources like a browser.
Stage 2 User Behavior
- A user runs the MaidSafe API in “non-client mode” to contribute resources (CPU, storage, bandwith, online time) to the Network.
- A user runs the MaidSafe API in “client mode” to consume resources from the Network without burdening their own resources.
Based on typical behavior, we can see the supply/demand roles between Non-Client and Client users.
- Non-Client users provide all resources and Safecoin is paid on GET requests. They will most-likely be computers with lots of hard drive space and strong internet connections.
- Client users consume resources but only pay Safecoin for PUT requests. This will most-likely be mobile devices.
Issue #1
Too many Client users consuming all resources except storage space will overburden the Non-Client users. Example: users only downloading from the SAFE Network. This means users only initiate GET requests because it costs nothing.
Issue #2
If the cost of storage is too high, the amount of content providers will diminish. This means users avoid PUT requests because it’s too expensive. They can easily upload their content on a hundred other servers from the regular internet. Many of them are already free.
Issue #3
I believe users are able to operate in Non-Client mode while also initiating GET requests. This may put a drag on their bandwith while simultaneously surfing the Network. It may be better to have the 2 modes focus on their operations exclusively. Non-Client operates like a server only, while Client mode operates like a browser only. If possible, it should be 2 programs running instead of one.
Rebalancing Solution?
This is not an easy problem. We’ve been hashing over it for several months. Keep in mind, nothing is set in stone. I’m just offering another idea that may lead to a working eco system.
IMHO, I believe majority of Network consumption will be from GET requests. If we want people to transfer from traditional internet to the SAFE Network, we need a very strong incentive. That means, new content, applications, uncensored information, everything the current internet offers and more. One barrier I see is the cost to PUT data on the SAFE Network. I am aware of the DOS attack scenarios and possible abuses from multiple accounts, etc. Until we solve this, I will keep looking for a solution… see below.
Assuming Issue #3 separates the 2 modes of operation.
Amusement Park Model
Non Client Users
- Earn Safecoin while connected to the Network.
- Total Safecoin payout is based on total resources provided (CPU, storage, bandwith, online time). Even if they aren’t running a vault, they could still earn Safecoin from data relay requests.
Network Rate is average of the total Safecoin Payout per Day divided by the total number of Clients. (Total Safecoin Payout) / (Total Clients) The specific formula can be adjusted. I just want to put out the general idea. The Network averages the total costs from GET requests with the amount of users who initiate those requests, which are the Clients.
Client Users
- Pay Safecoin based on the daily Network Rate, upon connection. The payment is per 24hrs or 1 month? This is debatable. Some people don’t want to hassle with paying everyday.
- PUT limit is based on the Network Average as @dirvine suggested from other posts. Multiple account abuses are mitigated by the fact that every Client account has to pay the daily Network Rate and are also capped by the Network Average.
- They still have the option to buy additional storage with Safecoin as normal.
- GET request are unlimited but still accounted for by the Network.
Example.
A new user wants to try out the SAFE Network and creates an account. They run the MaidSafe API in Client mode. They will be greeted by the Network Rate screen first as if they are at the gates to Disney Land.
They have the option to acquire Safecoin, or switch their API into Non-Client mode to earn Safecoin. Once they satisfy payment, they can upload the PUT cap, or download unlimited GET.
Because the Network pays Non-Clients based on GET requests, more usage increases the Network Rate unless there are more Clients added which averages out the total costs. The amusement park model should self adjust based on supply and demand now.
Q: Doesn’t this remove the free storage idea?
A: Yes. If this model attracts more Non-Client users, the costs of storage will go down to almost free. But the value of Safecoin should remain stable or increase due to consumption demand. It is no longer affected by decreasing storage costs.
Q: If Clients have to pay Safecoin per 24hrs, why have a PUT cap?
A: We don’t know if the Network can handle and overwhelming amount of uploads during the early stages. It is best to put a cap in order to protect it from hitting over capacity. After it has been established, we can revisit the PUT cap and adjust it or remove it.
Q: Isn’t the current plan to pay for storage, cheaper than the one you are proposing?
A: Yes, I’m hoping we can switch away from paying for storage all together. Paying for GET consumption equates real costs better than PUT storage. If I upload a game file, I pay only once. But over the course of months or years of playing, I would have costs the Non-Client user a lot more than I originally paid. We NEED to make sure Non-Client users stay with the Network and continue to grow in population. Also if we remove the cost to PUT data on the Network, then new content and mass adoption should take hold very quickly.