I'm planing hosting an instance, and I think that in the end I'll have to let the users pay for subscription. But just when I was imagining how I should design the subscription, I found there's a dilemma arose from the nature of fediverse:
(assume that people really like my instance for some reason)
- If I charge my users, they may simply register on another instance and keep interacting with my instance to avoid paying the fees.
- I can limit activities of the users who don't register on my instance to force them to subscribe my instance, but such action is obviously destructive to the fediverse.
I think this is not only my own problem. I think every instances with some scale faces the issue of costs, and relying on donation forever may not be a long term solution. So here's the question: how to let the owners of the instances get paid without violating the values of fediverse, i.e. decentralization and federation? Moreover, the solution should let the instances with higher popularity earn more money, so that'll encourage people to host high-quality instances. And I just figured out a (possibly very rough) solution by integrating blockchain to fediverse.
First, there will be a blockchain. There will be these cryptocurrencies:
- the universal currency, let's say "fedicoin". Fedicoin can be traded on trading platforms like normal cryptocurrencies.
- the currency of every single instance, e.g. InstanceA coin for InstanceA, InstanceB coin for InstanceB. The instance-specific coins are only used for federation between instances.
and the blockchain holds these data:
- how many fedicoins and instance-specific coins each instances owns.
- how many fedicoins each non-instance users owns, if any. I guess it would be better that only the instances can own instance-specific coins.
For operating the blockchain, there should be nodes to hold the data and process the transactions. The nodes can be either served by the instances or the non-instance machines. The nodes earn fedicoins.
When instances are federating with each other, every "demand" requires paying some instance-specific coins. The price of each type of demand will be predefined in the federation APIs. For example, if a user on InstanceB want to post on InstanceA, then InstanceB have to pay 10 lemmy.world coin to lemmy.world, and vise versa.
To earn instance-specific coins to pay for the demands, all the instances will "trade" automatically with other instances, and the "exchange rate" will be determined by some algorithm, possibly based on the amount of demands between each two instances. For example, if on average the demand from InstanceB to lemmy.world is 5 times more than the demand from lemmy.world to InstanceB, than in a trade, InstanceB may get 1000 lemmy.world coin, while lemmy.world may get 5000 InstanceB coin.
There will be an upper limit for every instance to own other instances' coins. For example, when lemmy.world owns 100,500 InstanceB coins, which exceeds the limit 100,000, then lemmy.world will refuse to trade with InstanceB by InstanceB coins. Under such condition, InstanceB have to trade with lemmy.world by the fedicoin. The owners of InstanceB will have to purchase fedicoin to let InstanceB trade with lemmy.world to maintain the fedaration.
Currently I think that the exchange rate between fedicoin and an instance-specific coin should be controlled by the owners of each instance, because each instance may have different costs for machines and moderation.
Finally, (hopefully) we'll have a fediverse like this:
- The highly-demanded instances earn fedicoins, which can be exchanged to real-world currencies. Such mechanism also encourages hosting high-quality instances and more open federation.
- The instances can simply charging their users normally by real-world currencies, so the users don't have to bother about cryptocurrencies.
Other side notes: Defining the prices of the demands may be tricky? For example, if my understanding is correct, there's no actual action like "read" when instances are communicating with APIs.
For the automatic trades between instances, of course there should be some controllable configuration, e.g. "don't buy coins over some price from some instances".
I'm just interested in the fediverse, and I hope my ideas can be helpful for its development. Any comments or crossposting are welcome and thank you for your reading.
No, that's absolute nonsense. You want people "interacting" with your instance to also be paying you?
I'm all for charging subscriptions from users of your instances. I'm all for commercial instances, but charging from people on other servers is next-level bullshit.
Seriously, I got angry just by reading this. Imagine if Verizon wanted to charge from calls made to their customers. Imagine if Google wanted to charge people that send emails to any Gmail address.
What a stupid concept, and I haven't even touched the crypto part of it.
Oh, MyCoolCommunity would require me to pay because it's on instanceA? Fuck that, hey everyone, come join MyCoolCommunity on instanceB!
Yes, and possibly instanceA provides better bandwidth and better moderation. if everyone do it, then we lose a good instance in the end.
As both an instance admin and a mod of a few communities, I can already tell you those are just expectations of any community already. That's not new, that's already the baseline. You have to find something even better than that.
Thank you for your comments. Maybe my solution is stupid, but I think the problem I wanted to tackle is practical and simple: how to let the owners of high-quality instances get paid? I don't think everything should be free, in the end the users have to pay the fees in some way, and the nature of fediverse may induce difficulties for the process.
Or, let me rephrase it simpler: if lemmy.world or some big instances got shortage of donation someday, then what should we do? Just give up and go back to X/Facebook/reddit? I'm just trying to answer this question. Could you also share your ideas to this question?
if donations aren't enough, scale down until they are. if that's not an option, then we let those instances die and set up new ones.
this is a network for people. if someone is not enthusiastic about running an instance, they don't have to.
No, if users paid to their own instances, the network would be fine.
Then hopefully enough people will learn the lesson and start donating to the existing commercial instances that exist, or start supporting whatever-next comes.
Bottom line is: trying to charge people who are not your direct users is absolutely moronic.
Yes, ideally, if users pay to their own instances then everything's fine. I hope the world is ideal, either. But why shouldn't we have a mechanism that can make fediverse sustainable, not rely on the kindness of humanity? Even the mechanism charges the users, fediverse is still intrinsically far better than the privately owned platforms. You still can host your own instances cuz it's open source, you can defederate. I don't think the value of fediverse is degraded by charging other instances. Open source doesn't means enjoy everything for free.
You charge from your users. The costs of any interactions from other instances will be because of your users.
Please show me the receipts of every payment you've made for every time you've used some free software.
What really pisses me off is that you probably never even tried to see for yourself what type of costs and work entails running an instance, yet you are here claiming to have a solution to all of the fediverse. The more you try to argue your position the more clueless you sound.
Put down the Ayn Rand bong, please. I don't think any federated network in Internet history (and I'm including Usenet) ever had a need for some hypercomplex reputation/coinage/exchange... thing. You think this would be a great idea, fine, you do you. You could even fork the software if you wanted to see if you got anywhere. But I really don't think there's any traction whatever in this idea.
Peering agreements have been around for a long time on the internet, they're part the backbone of the internet.
Peering agreements for internet traffic, what a stupid concept.
I don't think your analogy holds. Peering agreements is something that companies do regardless of contractual obligations with their customers.
And they certainly do not require blockchains or cryptocurrency.
The peering agreements are based on network traffic of the customers. Passing through costs to customers is always a thing.
But no customer signs a contract with discriminated pricing. There is no bill saying "calling numbers on network A costs $0.01/minute but B costs $0.002/minute because we have better peering with them".
Unless you want to live in a world where net neutrality is not a thing, trying to discriminate pricing based on partner carrier is insane.