Possible Membership Tiers for Fediverse Servers
-
@Raphael Lullis We will start small and scale up, but we need to plan ahead.
According to a recent post from @Daniel Supernault ⁂ it is costing them about $4000 a month ($48,000 a year) in hosting costs for multiple websites. He has Loops, Pixelfed, and several other sites. He is only up to about 250,000 active users, and 350,000 total users. Note that the $4000 a month does not include labor costs and overhead.
#^https://loves.tech/display/24f45628-71e8-515b-8dd0-cd208c7b70dd
#^https://mastodon.social/@dansup/113887622931474663
According to his post, he is only getting about $1,465 from Patreon, so donations are not cutting it. Although his crowdfunding campaign seems to be doing well. That is why we are looking into other ways to fund the servers.
We could host one single Hubzilla instance with 24 GB of RAM, 400% of virtual CPUs, and 5 TB of total disk space for less than $100 per month or less than $1200 per year, if you include taxes. Storage space costs about $1 for 200 GB.
The questions are: How many users will fit on this configuration? And how much space will each user use? How many people will upgrade to a paid plan? How much labor will be required to maintain the servers and how big of a staff do we need?
We don't know the answers to those questions with precision yet.
We do know that active users typically use anywhere between 1 GB to 20 GB of space just for messaging alone, not including cloud storage. So cloud storage would be on top of that. So if we give them 10 GB of cloud storage, we have to assume 20 GB of total space used by that user. Although many users will use less than that and some will use more.
We also know the exact cost for hosting small instances of Hubzilla, and that starts as low as $5.95 a month and storage space hovers around $1 for 200 GB.
And we also know that labor is expensive and grocery stores don't take volunteer time on open source for payment. So the goal is that channel excess funds back into development of the open source software.
Basically, we will have to do a soft launch at introductory prices, and see what people do. We can then use that data to refine the pricing and features people get. -
@Raphael Lullis We will start small and scale up, but we need to plan ahead.
According to a recent post from @Daniel Supernault ⁂ it is costing them about $4000 a month ($48,000 a year) in hosting costs for multiple websites. He has Loops, Pixelfed, and several other sites. He is only up to about 250,000 active users, and 350,000 total users. Note that the $4000 a month does not include labor costs and overhead.
#^https://loves.tech/display/24f45628-71e8-515b-8dd0-cd208c7b70dd
#^https://mastodon.social/@dansup/113887622931474663
According to his post, he is only getting about $1,465 from Patreon, so donations are not cutting it. Although his crowdfunding campaign seems to be doing well. That is why we are looking into other ways to fund the servers.
We could host one single Hubzilla instance with 24 GB of RAM, 400% of virtual CPUs, and 5 TB of total disk space for less than $100 per month or less than $1200 per year, if you include taxes. Storage space costs about $1 for 200 GB.
The questions are: How many users will fit on this configuration? And how much space will each user use? How many people will upgrade to a paid plan? How much labor will be required to maintain the servers and how big of a staff do we need?
We don't know the answers to those questions with precision yet.
We do know that active users typically use anywhere between 1 GB to 20 GB of space just for messaging alone, not including cloud storage. So cloud storage would be on top of that. So if we give them 10 GB of cloud storage, we have to assume 20 GB of total space used by that user. Although many users will use less than that and some will use more.
We also know the exact cost for hosting small instances of Hubzilla, and that starts as low as $5.95 a month and storage space hovers around $1 for 200 GB.
And we also know that labor is expensive and grocery stores don't take volunteer time on open source for payment. So the goal is that channel excess funds back into development of the open source software.
Basically, we will have to do a soft launch at introductory prices, and see what people do. We can then use that data to refine the pricing and features people get. -
Raphael Lullisreplied to Scott M. Stolz last edited by [email protected]
I think the key question I'd have is the one you are still figuring out the answer: given a deployment of a hubzilla server with a configuration, how many users can you serve?
E.g, how small is the $6/month "small instance"? Can it work with 10 users? 100? 3? And what happens when the average user follows 100 other people on the Fediverse? And what happens if one of these users follows a bunch of media heavy content? What would happen if one popular user is followed by 2M people?
-
@Raphael Lullis Another goal is to offload users with heavy usage onto their own servers. This makes costs more predictable and also aligns with our goals to decentralize social media. It also means that they get administrator access to their own servers, and can configure it how they want.
So when I say a stretch goal of 1 million, I don't want all of them on the same server. I mean total Hubzilla users, some on our flagship servers, some using our @TechSero hosting, some using other hosting providers like @K&T Host , and some self-hosting at using @YunoHost.
The goal is to create an ecosystem that attracts users but also promotes decentralization. -
@Raphael Lullis Another goal is to offload users with heavy usage onto their own servers. This makes costs more predictable and also aligns with our goals to decentralize social media. It also means that they get administrator access to their own servers, and can configure it how they want.
So when I say a stretch goal of 1 million, I don't want all of them on the same server. I mean total Hubzilla users, some on our flagship servers, some using our @TechSero hosting, some using other hosting providers like @K&T Host , and some self-hosting at using @YunoHost.
The goal is to create an ecosystem that attracts users but also promotes decentralization. -
@Raphael Lullis That is the tricky part. Usage by users vary greatly.
A small instance starts at $5.95 with 2 GB RAM, 20 GB of space, and 100% CPU, which gives you 50 processes. For $1 more, you can upgrade to 200 GB of disk space.
Based on usage on existing servers, that is sufficient for dozens of channels with average usage, or 1 user with very high usage. It probably could handle much more, but most of the servers we have as examples have less then 12 users on them, so we don't know the maximum it can hold.
This might be a good idea for a test. I can set up one of our servers and clone a bunch of accounts on it, and see how it fares. -
@Raphael Lullis That is the tricky part. Usage by users vary greatly.
A small instance starts at $5.95 with 2 GB RAM, 20 GB of space, and 100% CPU, which gives you 50 processes. For $1 more, you can upgrade to 200 GB of disk space.
Based on usage on existing servers, that is sufficient for dozens of channels with average usage, or 1 user with very high usage. It probably could handle much more, but most of the servers we have as examples have less then 12 users on them, so we don't know the maximum it can hold.
This might be a good idea for a test. I can set up one of our servers and clone a bunch of accounts on it, and see how it fares. -
FYI: each reply from you is generating multiple repeated responses, (presumably) one for each identity you have set up?
-
Yeah, you definitely need to synthesize some type of benchmark. There is no other way to answer the question "what do you think of this pricing strategy?" if you have no idea about your costs.
If you'd like to have some kind of load test, maybe you could set up an instance that mirrors 100k random active Instagram accounts and see what happens both with your instance and the network?
-
@Raphael Lullis
FYI: each reply from you is generating multiple repeated responses, (presumably) one for each identity you have set up?
That is because ActivityPub does not support nomadic identity (although there is an FEP for it). As such, Mastodon does not realize that all of those are the same channel and the same post.
This is one benefit of Hubzilla and Zot Protocol. You can clone your channel on as many servers as you want, but users will only get one copy of all of your posts, and also will be notified of your primary server.
My primary channel is [email protected] and I would recommend following that one. You can unfollow all of the others since they are duplicates or clones of [email protected].
Until ActivityPub and Mastodon recognize nomadic identity, this will continue to be an issue, unfortunately. -
@Raphael Lullis
FYI: each reply from you is generating multiple repeated responses, (presumably) one for each identity you have set up?
That is because ActivityPub does not support nomadic identity (although there is an FEP for it). As such, Mastodon does not realize that all of those are the same channel and the same post.
This is one benefit of Hubzilla and Zot Protocol. You can clone your channel on as many servers as you want, but users will only get one copy of all of your posts, and also will be notified of your primary server.
My primary channel is [email protected] and I would recommend following that one. You can unfollow all of the others since they are duplicates or clones of [email protected].
Until ActivityPub and Mastodon recognize nomadic identity, this will continue to be an issue, unfortunately. -
> As such, Mastodon does not realize that all of those are the same channel and the same post.
I'm usually quick to point fingers at Mastodon, but I'm not sure if this time they are at fault.
Mastodon (and most of ActivityPub current server software) does push-based interop. This means that any notification that I receive corresponds to one different activity being POST'ed to my actor inbox.
I'm not familiar with ZOT, but I'd be curious to know what is causing this.
-
@Raphael Lullis It is a known incompatibility issue. It has to do with how each platform handles aliases (or doesn't).
Hubzilla uses something called the Zot protocol, which is basically our version of ActivityPub. It supports certain things that ActivityPub does not support, which is why we still use it.
In Hubzilla and Zot Protocol, I can have clones (duplicates/aliases) of my channel. So [email protected] and [email protected] reside on different servers and are constantly synced. If one server goes down, I can log into the other. If I want to move servers, I can. Since Hubzilla and Zot allow cloning, they also recognize cloned accounts. They know these two accounts are the same account.
But, Mastodon and ActivityPub do not support this feature. ActivityPub thinks that [email protected] and [email protected] are two different accounts. So if you follow both of them, you get the message twice in Mastodon.
For ActivityPub followers, we have to send out copies of posts from all of the clones, because some people may follow one clone, and other people may follow another. This ensures that someone following an old but active clone can still get our posts. We are assuming that most people would follow only one clone and perhaps don't even know about the other clones.
Hubzilla does announce that these are cloned channels (aliases) via Webfinger, but to my knowledge, no ActivityPub platform checks this and none use this information to suppress duplicate posts.
It really isn't about blame. It is just that Mastodon does not support nomadic identity, so you get weird things like this. -
@Raphael Lullis It is a known incompatibility issue. It has to do with how each platform handles aliases (or doesn't).
Hubzilla uses something called the Zot protocol, which is basically our version of ActivityPub. It supports certain things that ActivityPub does not support, which is why we still use it.
In Hubzilla and Zot Protocol, I can have clones (duplicates/aliases) of my channel. So [email protected] and [email protected] reside on different servers and are constantly synced. If one server goes down, I can log into the other. If I want to move servers, I can. Since Hubzilla and Zot allow cloning, they also recognize cloned accounts. They know these two accounts are the same account.
But, Mastodon and ActivityPub do not support this feature. ActivityPub thinks that [email protected] and [email protected] are two different accounts. So if you follow both of them, you get the message twice in Mastodon.
For ActivityPub followers, we have to send out copies of posts from all of the clones, because some people may follow one clone, and other people may follow another. This ensures that someone following an old but active clone can still get our posts. We are assuming that most people would follow only one clone and perhaps don't even know about the other clones.
Hubzilla does announce that these are cloned channels (aliases) via Webfinger, but to my knowledge, no ActivityPub platform checks this and none use this information to suppress duplicate posts.
It really isn't about blame. It is just that Mastodon does not support nomadic identity, so you get weird things like this. -
@scott but shouldn't it be possible for Hubzilla to track who-follows-what, and only send the messages accordingly?
I surely don't follow you from your other identities. Maybe Hubzilla could have a system that sends messages only with as:Public by default, and only addresses the responder with the "in reply to" field by the follower's known aliases?
-
@Raphael Lullis Hubzilla does track who follows what. If you follow [email protected], only loves.tech will send you the message. The other clones do not send a message to you.
But Mastodon has a shared inbox. And there are other people on your server who may be following the other clones.
So what might be happening is that you follow [email protected] so loves.tech sends you a copy of the post. But someone else is following [email protected] so authorship.studio is sending them a copy of the post. They both go into Mastodon's shared inbox on your server, one addressed to you, one addressed to them.
Mastodon does not realize that this is the same post and same user, so it adds both copies of the post to the conversation.
At least, that is my theory on what is happening. -
@Raphael Lullis Hubzilla does track who follows what. If you follow [email protected], only loves.tech will send you the message. The other clones do not send a message to you.
But Mastodon has a shared inbox. And there are other people on your server who may be following the other clones.
So what might be happening is that you follow [email protected] so loves.tech sends you a copy of the post. But someone else is following [email protected] so authorship.studio is sending them a copy of the post. They both go into Mastodon's shared inbox on your server, one addressed to you, one addressed to them.
Mastodon does not realize that this is the same post and same user, so it adds both copies of the post to the conversation.
At least, that is my theory on what is happening. -
I'm getting really closed to get nerd-sniped by this and set up a database viewer to see who-is-following-who on the server.
-
@Raphael Lullis One of the reasons why they set it up this way is because of how Mastodon notifications work. If you follow [email protected] but [email protected] sends you the message, Mastodon will not notify you of the message. It has to be sent from the account and domain being followed.
So if two people follow different clones, the only way Mastodon users will be notified is if we send it from both clones.
But, apparently, this means in conversation view, there would be two copies of the post. Or more than two in this case.
Basically, that is the issue. We send on copy, Mastodon notifications don't work. We send multiple copies, Mastodon notifications work, but you may get duplicate posts. -
@Raphael Lullis One of the reasons why they set it up this way is because of how Mastodon notifications work. If you follow [email protected] but [email protected] sends you the message, Mastodon will not notify you of the message. It has to be sent from the account and domain being followed.
So if two people follow different clones, the only way Mastodon users will be notified is if we send it from both clones.
But, apparently, this means in conversation view, there would be two copies of the post. Or more than two in this case.
Basically, that is the issue. We send on copy, Mastodon notifications don't work. We send multiple copies, Mastodon notifications work, but you may get duplicate posts.