From 54ef767f97c72e8ad543afcfebba131b31fdb941 Mon Sep 17 00:00:00 2001 From: Jay Graber Date: Fri, 5 Jun 2020 09:41:34 -0700 Subject: [PATCH 1/8] Finish madstodon --- applications/mastodon.md | 96 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/applications/mastodon.md b/applications/mastodon.md index e69de29..0c8800c 100644 --- a/applications/mastodon.md +++ b/applications/mastodon.md @@ -0,0 +1,96 @@ +# Mastodon + +Mastodon is a federated Twitter alternative. It is the most popular client running ActivityPub. It started out using OStatus, and switched to ActivityPub. + +Each server is called an "instance". The entire constellation of instances that can interoperate is called the “Fediverse”. + +### Identity + +Users create an account on a server (an “instance”), but can communicate with users on other instances. A full username is a user’s handle plus the name of the instance the user belongs to, for example: + +``` +@alice@mastodon.social +``` + +Usernames are unique to each instance, not to Mastodon as a whole, so `@alice.mastodon.social` can coexist with `@alice.mastodon.socal`. + +If a user moves to a new instance, they can redirect or migrate their old account. Redirection sets up a redirect notice on the old profile which tells users to follow the new account. Migration forces all followers to unfollow the old account and follow the new, if their software supports this functionality. Previous posts will not be moved. + +Account credentials are managed by the user’s instance, so if users forget their password, they can ask for a password reset. + +Whether users can delete their own accounts is a setting dependent on the instance admin. + +An identity proof framework was added in 2019, which currently only supports Keybase. It allows users to link their Keybase cryptographic identity to their Mastodon account. + +### Networking/Message passing + +Mastodon uses [Webfinger](https://docs.joinmastodon.org/spec/webfinger/) to translate user mentions to actor profile URIs. + +ActivityPub federation defines a common set of APIs and formats for passing messages between servers. + +### Data Storage/Message Persistence + +Mastodon is a Ruby on Rails application that uses PostgreSQL and Redis for data storage. + +### Moderation/Reputation + +Each instance sets its own moderation policies, either through the unilateral decisions of an admin, or through collective discussion and agreement. Admins can ban entire instances, cutting off their visibility. If an instance gets banned by many others, its users can still talk with each other, but they will be isolated from the rest of the Fediverse. + +Mastodon has content warnings that admins can apply to warn users of the nature of the content before they click. + +Users can report posts to moderators. + +### Social/Discovery + +There is [no unified global search in Mastodon](https://github.com/tootsuite/mastodon/issues/9529), as each server monitors a different set of messages. Searching for the same keyword on different instances yields different results. The federated timeline shows public posts that the user's server knows about. Essentially, users have access to posts of people followed by people on their instance. + +### Privacy and Access Control + +Posts can be public, unlisted, or private, or direct. Public posts are searchable on the web. Unlisted posts are not, but can be accessed through the link. Private posts are only visible to followers. Direct posts can only be seen by the people mentioned in them. + +Users can also hide their network, so the lists of followers and people they're following are not visible. + +Mastodon's privacy settings are recommendations, not demands, so it is up to each individual server to implement and enforce them. + +Mastodon can be served through Tor as an onion service. + +### Monetization + +Federated social networks require both hosting and development costs to maintain. Each instance is funded by its own administrator and community. Mastodon’s development is funded through a Patreon run by the main developer. It currently brings in about 70k a year, which supports him working on it full time, and covers hosting costs and a moderation team for the mastodon.social instance. + +### User experience + +Mastodon's main initial selling point was its familiar interface that behaved like Tweetdeck. Many other federated social applications that work essentially the same way had tried and failed to get mainstream adoption prior to Mastodon, largely due to unfamiliar user interfaces. + +Notable design choices that differ from Twitter: Instead of the 280 character limit offered by Twitter, Mastodon has a 500 character limit. "Likes" are not broadcast to third-parties. "Retweet" and "Like" numbers are not shown until a post is clicked on. "Bookmark" is a separate feature from "Like". Sometimes unlocked accounts receive a notification to manually review certain follow requests. + +User-level content controls include: Filtering on posts can automatically hide keywords and phrases. "Boosts" (like retweets) from someone can be hidden. Accounts can be muted or blocked. Entire servers, including all of its posts, can be blocked by a user. Following, muting, blocking, and domain-blocking lists can be imported. + +### Interoperability + +Mastodon is compatible with all federated applications that use ActivityPub. These include Pleroma, another social site, PixelFed, a photo-sharing site, and PeerTube, a video-sharing site. Mastodon users can follow a PixelFed or PeerTube user from Mastodon. + +All Mastodon user data is available for export. + +Since Mastodon is one of the most widely used decentralized social applications, there are many user requests to expand interoperability. Some of these requests may be stalled by lack of developer resources and the challenge of upgrading protocols rather than technical limitations. Some examples of requested interoperability features: + +- To comment on a PixelFed post, a user needs to follow the link to that service. A request for [remote interaction](https://github.com/tootsuite/mastodon/issues/13822) with other federated services has been requested, but is not implemented. +- A global directory for [importing friends from other networks](https://github.com/tootsuite/mastodon/issues/11886) + +### Scalability + +Mastodon.Social, the instance started by Mastodon's main developer, Eugen Gargron, initially became the server of choice for new users. It was scaled up to a larger hosting provider several times, until he closed new registrations in 2018. He has now started mastodon.online to support more registrations. Anyone can run a Mastodon instance, but in practice, the majority of users have concentrated within a few. + +When a surge of new users join an instance, server admins run into scaling issues. + +Another scalability issue is the design of Mastodon itself. As a monolithic web server and web app, it needs to run on a larger VPS. Mastodon hosting providers have emerged as a service to help individuals interested in being admins but without sysadmin experience to spin up servers. + +A WIP alternative Mastodon implementation in Rust: https://github.com/rustodon/rustodon/ + +### Metrics + +Mastodon has around 2.2 million accounts and 2800 nodes, as of June 2020. + +### Links + +[Official website](https://joinmastodon.org/) From a86f2993d59e2bd5ad05a8757bcf3bc23b252a49 Mon Sep 17 00:00:00 2001 From: Jay Graber Date: Fri, 5 Jun 2020 10:42:50 -0700 Subject: [PATCH 2/8] Improve mastodon section --- applications/mastodon.md | 41 ++++++++++++++++------------------------ 1 file changed, 16 insertions(+), 25 deletions(-) diff --git a/applications/mastodon.md b/applications/mastodon.md index 0c8800c..b92d5dd 100644 --- a/applications/mastodon.md +++ b/applications/mastodon.md @@ -1,12 +1,12 @@ # Mastodon -Mastodon is a federated Twitter alternative. It is the most popular client running ActivityPub. It started out using OStatus, and switched to ActivityPub. +Mastodon is a federated Twitter alternative. It is the most popular client using the ActivityPub federation protocol. It started out using OStatus, and switched to ActivityPub. Each server is called an "instance". The entire constellation of instances that can interoperate is called the “Fediverse”. ### Identity -Users create an account on a server (an “instance”), but can communicate with users on other instances. A full username is a user’s handle plus the name of the instance the user belongs to, for example: +Users create an account on an instance, but can communicate with users on other instances. A full username is a user’s handle plus the name of the instance the user belongs to, for example: ``` @alice@mastodon.social @@ -14,19 +14,17 @@ Users create an account on a server (an “instance”), but can communicate wit Usernames are unique to each instance, not to Mastodon as a whole, so `@alice.mastodon.social` can coexist with `@alice.mastodon.socal`. -If a user moves to a new instance, they can redirect or migrate their old account. Redirection sets up a redirect notice on the old profile which tells users to follow the new account. Migration forces all followers to unfollow the old account and follow the new, if their software supports this functionality. Previous posts will not be moved. +If a user moves to a new instance, they can redirect or migrate their old account. Redirection sets up a redirect notice on the old profile which tells users to follow the new account. Migration forces all followers to unfollow the old account and follow the new, if the software on their instance supports this functionality. Previous posts will not be moved. -Account credentials are managed by the user’s instance, so if users forget their password, they can ask for a password reset. - -Whether users can delete their own accounts is a setting dependent on the instance admin. +Account credentials are managed by the user’s instance, so if users forget their password, they can ask for a password reset. Whether users can delete their own accounts or not is a setting dependent on the instance admin. An identity proof framework was added in 2019, which currently only supports Keybase. It allows users to link their Keybase cryptographic identity to their Mastodon account. ### Networking/Message passing -Mastodon uses [Webfinger](https://docs.joinmastodon.org/spec/webfinger/) to translate user mentions to actor profile URIs. +Mastodon uses [Webfinger](https://docs.joinmastodon.org/spec/webfinger/) to translate user mentions to actor profile URIs. Webfinger specifies the path at which to find a user's profile information provided by the server. -ActivityPub federation defines a common set of APIs and formats for passing messages between servers. +ActivityPub federation defines a common set of APIs and formats for passing messages between servers. ActivityPub messages consist of the message itself, and a wrapper that communicates what's happening with the message, defining the "activity". The activities Mastodon implements are documented [here](https://docs.joinmastodon.org/spec/activitypub/). ### Data Storage/Message Persistence @@ -34,11 +32,9 @@ Mastodon is a Ruby on Rails application that uses PostgreSQL and Redis for data ### Moderation/Reputation -Each instance sets its own moderation policies, either through the unilateral decisions of an admin, or through collective discussion and agreement. Admins can ban entire instances, cutting off their visibility. If an instance gets banned by many others, its users can still talk with each other, but they will be isolated from the rest of the Fediverse. +Moderation takes place at the server level in Mastodon. Each instance sets its own moderation policies, either through the unilateral decisions of an admin, or through collective discussion and agreement. Admins can ban entire instances, cutting off their visibility. If an instance gets banned by many others, its users can still talk with each other, but they will be isolated from the rest of the Fediverse. -Mastodon has content warnings that admins can apply to warn users of the nature of the content before they click. - -Users can report posts to moderators. +Mastodon has content warnings that admins can apply to warn users of the nature of the content before they click. Users can also report posts to moderators. ### Social/Discovery @@ -46,23 +42,19 @@ There is [no unified global search in Mastodon](https://github.com/tootsuite/mas ### Privacy and Access Control -Posts can be public, unlisted, or private, or direct. Public posts are searchable on the web. Unlisted posts are not, but can be accessed through the link. Private posts are only visible to followers. Direct posts can only be seen by the people mentioned in them. - -Users can also hide their network, so the lists of followers and people they're following are not visible. - -Mastodon's privacy settings are recommendations, not demands, so it is up to each individual server to implement and enforce them. +Posts can be public, unlisted, private, or direct. Public posts are searchable on the web. Unlisted posts are not, but can be accessed through the link. Private posts are only visible to followers. Direct posts can only be seen by the people mentioned in them. Users can also hide their network, so the lists of followers and people they're following are not visible.Mastodon's privacy settings are recommendations, not demands, so it is up to each individual server to implement and enforce them. Mastodon can be served through Tor as an onion service. ### Monetization -Federated social networks require both hosting and development costs to maintain. Each instance is funded by its own administrator and community. Mastodon’s development is funded through a Patreon run by the main developer. It currently brings in about 70k a year, which supports him working on it full time, and covers hosting costs and a moderation team for the mastodon.social instance. +Federated social networks require both hosting and development costs to maintain. Each instance is funded by its own administrator and community. Mastodon’s development is funded through a Patreon run by the main developer, Eugen Gargron. It currently brings in about 70k a year, which supports him working on it full time, and covers hosting costs and a moderation team for the mastodon.social instance. ### User experience Mastodon's main initial selling point was its familiar interface that behaved like Tweetdeck. Many other federated social applications that work essentially the same way had tried and failed to get mainstream adoption prior to Mastodon, largely due to unfamiliar user interfaces. -Notable design choices that differ from Twitter: Instead of the 280 character limit offered by Twitter, Mastodon has a 500 character limit. "Likes" are not broadcast to third-parties. "Retweet" and "Like" numbers are not shown until a post is clicked on. "Bookmark" is a separate feature from "Like". Sometimes unlocked accounts receive a notification to manually review certain follow requests. +Notable design choices in Mastodon that differ from Twitter: Instead of a 280 character limit, there is a 500 character limit. "Likes" are not broadcast to third-parties. "Retweet" and "Like" numbers are not shown until a post is clicked on. "Bookmark" is a separate feature from "Like". Sometimes unlocked accounts receive a notification to manually review certain follow requests. User-level content controls include: Filtering on posts can automatically hide keywords and phrases. "Boosts" (like retweets) from someone can be hidden. Accounts can be muted or blocked. Entire servers, including all of its posts, can be blocked by a user. Following, muting, blocking, and domain-blocking lists can be imported. @@ -72,20 +64,18 @@ Mastodon is compatible with all federated applications that use ActivityPub. The All Mastodon user data is available for export. -Since Mastodon is one of the most widely used decentralized social applications, there are many user requests to expand interoperability. Some of these requests may be stalled by lack of developer resources and the challenge of upgrading protocols rather than technical limitations. Some examples of requested interoperability features: +Since Mastodon is one of the most widely used decentralized social applications, there are many user requests to extend interoperability. Some of these requests may be stalled by lack of developer resources and the challenge of upgrading decentralized protocols rather than by technical limitations. Some examples of requested interoperability features: - To comment on a PixelFed post, a user needs to follow the link to that service. A request for [remote interaction](https://github.com/tootsuite/mastodon/issues/13822) with other federated services has been requested, but is not implemented. - A global directory for [importing friends from other networks](https://github.com/tootsuite/mastodon/issues/11886) ### Scalability -Mastodon.Social, the instance started by Mastodon's main developer, Eugen Gargron, initially became the server of choice for new users. It was scaled up to a larger hosting provider several times, until he closed new registrations in 2018. He has now started mastodon.online to support more registrations. Anyone can run a Mastodon instance, but in practice, the majority of users have concentrated within a few. +Mastodon.Social, the instance started by Mastodon's main developer, Eugen Gargron, initially became the server of choice for new users. The server was scaled up to a larger VPS several times, until new registrations were closed in 2018. Gargron has now started mastodon.online to support more registrations. Anyone can run a Mastodon instance, but in practice, the majority of users have concentrated within a few. -When a surge of new users join an instance, server admins run into scaling issues. +When a surge of new users join an instance, server admins can run into scaling issues, as any web host who becomes unexpectedly popular does. -Another scalability issue is the design of Mastodon itself. As a monolithic web server and web app, it needs to run on a larger VPS. Mastodon hosting providers have emerged as a service to help individuals interested in being admins but without sysadmin experience to spin up servers. - -A WIP alternative Mastodon implementation in Rust: https://github.com/rustodon/rustodon/ +Another scalability issue is the resource requirements of Mastodon. As a monolithic web server and web app, it needs to run on a larger VPS. Mastodon hosting providers have emerged as a service to help individuals interested in being admins but without sysadmin experience to spin up servers. Pleroma, another federated social app, is a more minimal implementation that requires fewer resources to run. Rustodon is a WIP experimental Mastodon implementation in Rust, intended to address performance issues: https://github.com/rustodon/rustodon/ ### Metrics @@ -94,3 +84,4 @@ Mastodon has around 2.2 million accounts and 2800 nodes, as of June 2020. ### Links [Official website](https://joinmastodon.org/) +[Documentation](https://docs.joinmastodon.org/) From f39b2349dbe6d625e0c6e11a60fb9170e2615566 Mon Sep 17 00:00:00 2001 From: Jay Graber Date: Fri, 5 Jun 2020 11:57:51 -0700 Subject: [PATCH 3/8] Add moderation critique --- applications/mastodon.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/applications/mastodon.md b/applications/mastodon.md index b92d5dd..24a2273 100644 --- a/applications/mastodon.md +++ b/applications/mastodon.md @@ -36,6 +36,8 @@ Moderation takes place at the server level in Mastodon. Each instance sets its o Mastodon has content warnings that admins can apply to warn users of the nature of the content before they click. Users can also report posts to moderators. +Some documented [challenges with moderation in Mastodon](https://nolanlawson.com/2018/08/31/mastodon-and-the-challenges-of-abuse-in-a-federated-system/amp/) from 2018. One recommended solution is to provide open APIs for third-party tools to help with moderation, which was [added in 2019](https://github.com/tootsuite/mastodon/pull/9387). + ### Social/Discovery There is [no unified global search in Mastodon](https://github.com/tootsuite/mastodon/issues/9529), as each server monitors a different set of messages. Searching for the same keyword on different instances yields different results. The federated timeline shows public posts that the user's server knows about. Essentially, users have access to posts of people followed by people on their instance. From d9ebf60894b07e008c815ff09af499f80566ca61 Mon Sep 17 00:00:00 2001 From: Jay Graber Date: Fri, 5 Jun 2020 11:59:49 -0700 Subject: [PATCH 4/8] Add keybase issue link --- applications/mastodon.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/applications/mastodon.md b/applications/mastodon.md index 24a2273..d3ecbdb 100644 --- a/applications/mastodon.md +++ b/applications/mastodon.md @@ -18,7 +18,7 @@ If a user moves to a new instance, they can redirect or migrate their old accoun Account credentials are managed by the user’s instance, so if users forget their password, they can ask for a password reset. Whether users can delete their own accounts or not is a setting dependent on the instance admin. -An identity proof framework was added in 2019, which currently only supports Keybase. It allows users to link their Keybase cryptographic identity to their Mastodon account. +An identity proof framework was added in 2019, which currently only supports Keybase. It allows users to [link their Keybase cryptographic identity](https://github.com/keybase/keybase-issues/issues/2948) to their Mastodon account. ### Networking/Message passing From 5cf7bb49cfe3a02a9be1df703c38cf9ae5efc9bd Mon Sep 17 00:00:00 2001 From: Jay Graber Date: Fri, 5 Jun 2020 15:59:39 -0700 Subject: [PATCH 5/8] Edit --- applications/mastodon.md | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/applications/mastodon.md b/applications/mastodon.md index d3ecbdb..b839d78 100644 --- a/applications/mastodon.md +++ b/applications/mastodon.md @@ -12,13 +12,13 @@ Users create an account on an instance, but can communicate with users on other @alice@mastodon.social ``` -Usernames are unique to each instance, not to Mastodon as a whole, so `@alice.mastodon.social` can coexist with `@alice.mastodon.socal`. +Usernames are unique to each instance, not to Mastodon as a whole, so `@alice@mastodon.social` can coexist with `@alice@modern.town`. If a user moves to a new instance, they can redirect or migrate their old account. Redirection sets up a redirect notice on the old profile which tells users to follow the new account. Migration forces all followers to unfollow the old account and follow the new, if the software on their instance supports this functionality. Previous posts will not be moved. Account credentials are managed by the user’s instance, so if users forget their password, they can ask for a password reset. Whether users can delete their own accounts or not is a setting dependent on the instance admin. -An identity proof framework was added in 2019, which currently only supports Keybase. It allows users to [link their Keybase cryptographic identity](https://github.com/keybase/keybase-issues/issues/2948) to their Mastodon account. +For user verification, there is no central authority to check identity documents, but link-based verification can help cross-reference links associated with a user. For example, a user can link to their Mastodon profile from their personal homepage, and receive a verification checkmark to confirm that they are the owner. In addition, an identity proof framework was added in 2019, which currently only supports Keybase. It allows users to [link their Keybase cryptographic identity](https://github.com/keybase/keybase-issues/issues/2948) to their Mastodon account. ### Networking/Message passing @@ -34,7 +34,7 @@ Mastodon is a Ruby on Rails application that uses PostgreSQL and Redis for data Moderation takes place at the server level in Mastodon. Each instance sets its own moderation policies, either through the unilateral decisions of an admin, or through collective discussion and agreement. Admins can ban entire instances, cutting off their visibility. If an instance gets banned by many others, its users can still talk with each other, but they will be isolated from the rest of the Fediverse. -Mastodon has content warnings that admins can apply to warn users of the nature of the content before they click. Users can also report posts to moderators. +Users can also report posts to moderators, submitting it for a moderation decision. Users can also apply content warnings to their posts themselves, to indicate the nature of the content and hide it behind a click. Some documented [challenges with moderation in Mastodon](https://nolanlawson.com/2018/08/31/mastodon-and-the-challenges-of-abuse-in-a-federated-system/amp/) from 2018. One recommended solution is to provide open APIs for third-party tools to help with moderation, which was [added in 2019](https://github.com/tootsuite/mastodon/pull/9387). @@ -42,46 +42,53 @@ Some documented [challenges with moderation in Mastodon](https://nolanlawson.com There is [no unified global search in Mastodon](https://github.com/tootsuite/mastodon/issues/9529), as each server monitors a different set of messages. Searching for the same keyword on different instances yields different results. The federated timeline shows public posts that the user's server knows about. Essentially, users have access to posts of people followed by people on their instance. +Mastodon's interface has a "Profile Directory" tab, where users can browse recently active profiles or new arrivals from both their own instance or the fediverse to discover who to follow. Users can select featured hashtags to be displayed on their public profile so people can browse their posts by hashtag. + ### Privacy and Access Control -Posts can be public, unlisted, private, or direct. Public posts are searchable on the web. Unlisted posts are not, but can be accessed through the link. Private posts are only visible to followers. Direct posts can only be seen by the people mentioned in them. Users can also hide their network, so the lists of followers and people they're following are not visible.Mastodon's privacy settings are recommendations, not demands, so it is up to each individual server to implement and enforce them. +Posts can be public, unlisted, private, or direct. Public posts are shown on local, federated, and hashtag timelines. Unlisted posts are not, but can be accessed through the link. Private posts are only visible to followers. Direct posts can only be seen by the people mentioned in them. Users can also hide their network, so the lists of followers and people they're following are not visible. Servers only receive posts that are public or addressed to a person on that server. Mastodon's privacy settings are a part of the ActivityPub spec. Mastodon can be served through Tor as an onion service. ### Monetization -Federated social networks require both hosting and development costs to maintain. Each instance is funded by its own administrator and community. Mastodon’s development is funded through a Patreon run by the main developer, Eugen Gargron. It currently brings in about 70k a year, which supports him working on it full time, and covers hosting costs and a moderation team for the mastodon.social instance. +Federated social networks require both hosting and development costs to maintain. Each instance is funded by its own administrator and community. Mastodon’s development is funded through a Patreon run by the main developer, Eugen Rochko. It currently brings in about 70k a year, which supports him working on it full time, and covers hosting costs and a moderation team for the popular mastodon.social instance. ### User experience Mastodon's main initial selling point was its familiar interface that behaved like Tweetdeck. Many other federated social applications that work essentially the same way had tried and failed to get mainstream adoption prior to Mastodon, largely due to unfamiliar user interfaces. -Notable design choices in Mastodon that differ from Twitter: Instead of a 280 character limit, there is a 500 character limit. "Likes" are not broadcast to third-parties. "Retweet" and "Like" numbers are not shown until a post is clicked on. "Bookmark" is a separate feature from "Like". Sometimes unlocked accounts receive a notification to manually review certain follow requests. +Notable design choices in Mastodon that differ from Twitter: Instead of a 280 character limit, there is a 500 character limit. "Likes" are not broadcast to third-parties. "Retweet" and "Like" numbers are not shown until a post is clicked on. If a user with an unlocked account gets a follow request from an account that has been silenced by the server's moderators (either manually, or at their domain), the user will get a follow request instead of automatically allowing the new account to follow. -User-level content controls include: Filtering on posts can automatically hide keywords and phrases. "Boosts" (like retweets) from someone can be hidden. Accounts can be muted or blocked. Entire servers, including all of its posts, can be blocked by a user. Following, muting, blocking, and domain-blocking lists can be imported. +User-level content controls include: Users can set content warnings on their own posts. Filtering on posts can automatically hide keywords and phrases. "Boosts" (like retweets) from someone can be hidden. Accounts can be muted or blocked. Entire servers, including all of its posts, can be blocked by a user. Following, muting, blocking, and domain-blocking lists can be imported. + +Upload options include: Users can choose where the thumbnail of a picture is focused when opening. Users can enter custom alt-text to image uploads. There is an OCR button to help extract text from an image for the visually impaired. +Audio files can be uploaded. + +Admins can upload custom emojis to their servers ### Interoperability -Mastodon is compatible with all federated applications that use ActivityPub. These include Pleroma, another social site, PixelFed, a photo-sharing site, and PeerTube, a video-sharing site. Mastodon users can follow a PixelFed or PeerTube user from Mastodon. +Mastodon is compatible with all federated applications that use ActivityPub. These include Pleroma, another social application, PixelFed, a photo-sharing application, and PeerTube, a video-sharing application. Mastodon users can follow a PixelFed or PeerTube user from Mastodon. All Mastodon user data is available for export. Since Mastodon is one of the most widely used decentralized social applications, there are many user requests to extend interoperability. Some of these requests may be stalled by lack of developer resources and the challenge of upgrading decentralized protocols rather than by technical limitations. Some examples of requested interoperability features: -- To comment on a PixelFed post, a user needs to follow the link to that service. A request for [remote interaction](https://github.com/tootsuite/mastodon/issues/13822) with other federated services has been requested, but is not implemented. +- To comment on a PeerTube post, a user needs to follow the link to that service. A request for [remote interaction](https://github.com/tootsuite/mastodon/issues/13822) with other federated services has been requested, but is not implemented. - A global directory for [importing friends from other networks](https://github.com/tootsuite/mastodon/issues/11886) ### Scalability -Mastodon.Social, the instance started by Mastodon's main developer, Eugen Gargron, initially became the server of choice for new users. The server was scaled up to a larger VPS several times, until new registrations were closed in 2018. Gargron has now started mastodon.online to support more registrations. Anyone can run a Mastodon instance, but in practice, the majority of users have concentrated within a few. +Mastodon.Social, the instance started by Mastodon's main developer, initially became the server of choice for new users. The server architecture was [scaled up](https://blog.joinmastodon.org/2017/04/scaling-mastodon/) several times, until new registrations were closed in 2017. He has now started mastodon.online to support more registrations. Anyone can run a Mastodon instance, but in practice, the majority of users have concentrated within a few. When a surge of new users join an instance, server admins can run into scaling issues, as any web host who becomes unexpectedly popular does. -Another scalability issue is the resource requirements of Mastodon. As a monolithic web server and web app, it needs to run on a larger VPS. Mastodon hosting providers have emerged as a service to help individuals interested in being admins but without sysadmin experience to spin up servers. Pleroma, another federated social app, is a more minimal implementation that requires fewer resources to run. Rustodon is a WIP experimental Mastodon implementation in Rust, intended to address performance issues: https://github.com/rustodon/rustodon/ +Another scalability issue is the resource requirements of Mastodon. As a monolithic web server and web app, it needs to run on a larger VPS. Mastodon hosting providers have emerged as a service to help individuals interested in being admins but without sysadmin experience to spin up servers. Pleroma, another federated social app, is a more minimal implementation that requires fewer resources to run. ### Metrics -Mastodon has around 2.2 million accounts and 2800 nodes, as of June 2020. +Mastodon has around 2.9 million accounts and 2785 nodes, as of June 2020, according to [fediverse.network](https://fediverse.network/mastodon). From Mastodon, 3.8 million accounts can be reached within the Fediverse. ### Links From 1ecc88168bb1cd3e794308971724f7c00c195beb Mon Sep 17 00:00:00 2001 From: Jay Graber Date: Fri, 5 Jun 2020 16:16:56 -0700 Subject: [PATCH 6/8] More edits --- applications/mastodon.md | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/applications/mastodon.md b/applications/mastodon.md index b839d78..b15a4f9 100644 --- a/applications/mastodon.md +++ b/applications/mastodon.md @@ -71,20 +71,17 @@ Admins can upload custom emojis to their servers Mastodon is compatible with all federated applications that use ActivityPub. These include Pleroma, another social application, PixelFed, a photo-sharing application, and PeerTube, a video-sharing application. Mastodon users can follow a PixelFed or PeerTube user from Mastodon. +Mastodon users used to be able to find their Twitter friends using `bridge.joinmastodon.org`, but the service was shut down after the developer lost access to API keys and was not granted another set. A user request for a global directory for [importing friends from other networks](https://github.com/tootsuite/mastodon/issues/11886). + All Mastodon user data is available for export. -Since Mastodon is one of the most widely used decentralized social applications, there are many user requests to extend interoperability. Some of these requests may be stalled by lack of developer resources and the challenge of upgrading decentralized protocols rather than by technical limitations. Some examples of requested interoperability features: - -- To comment on a PeerTube post, a user needs to follow the link to that service. A request for [remote interaction](https://github.com/tootsuite/mastodon/issues/13822) with other federated services has been requested, but is not implemented. -- A global directory for [importing friends from other networks](https://github.com/tootsuite/mastodon/issues/11886) - ### Scalability Mastodon.Social, the instance started by Mastodon's main developer, initially became the server of choice for new users. The server architecture was [scaled up](https://blog.joinmastodon.org/2017/04/scaling-mastodon/) several times, until new registrations were closed in 2017. He has now started mastodon.online to support more registrations. Anyone can run a Mastodon instance, but in practice, the majority of users have concentrated within a few. When a surge of new users join an instance, server admins can run into scaling issues, as any web host who becomes unexpectedly popular does. -Another scalability issue is the resource requirements of Mastodon. As a monolithic web server and web app, it needs to run on a larger VPS. Mastodon hosting providers have emerged as a service to help individuals interested in being admins but without sysadmin experience to spin up servers. Pleroma, another federated social app, is a more minimal implementation that requires fewer resources to run. +Another scalability issue is the resource requirements of Mastodon. Mastodon hosting providers have emerged as a service to help individuals interested in being admins but without sysadmin experience to spin up servers. Pleroma, another federated social app, is advertised as a more minimal implementation good for single user instances that requires fewer resources to run. ### Metrics From 85863e508b871c625169d756e415dbb85c205565 Mon Sep 17 00:00:00 2001 From: Jay Graber Date: Fri, 5 Jun 2020 16:51:28 -0700 Subject: [PATCH 7/8] Rm line --- applications/mastodon.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/applications/mastodon.md b/applications/mastodon.md index b15a4f9..a9371e5 100644 --- a/applications/mastodon.md +++ b/applications/mastodon.md @@ -46,7 +46,7 @@ Mastodon's interface has a "Profile Directory" tab, where users can browse recen ### Privacy and Access Control -Posts can be public, unlisted, private, or direct. Public posts are shown on local, federated, and hashtag timelines. Unlisted posts are not, but can be accessed through the link. Private posts are only visible to followers. Direct posts can only be seen by the people mentioned in them. Users can also hide their network, so the lists of followers and people they're following are not visible. Servers only receive posts that are public or addressed to a person on that server. Mastodon's privacy settings are a part of the ActivityPub spec. +Posts can be public, unlisted, private, or direct. Public posts are shown on local, federated, and hashtag timelines. Unlisted posts are not, but can be accessed through the link. Private posts are only visible to followers. Direct posts can only be seen by the people mentioned in them. Users can also hide their network, so the lists of followers and people they're following are not visible. Servers only receive posts that are public or addressed to a person on that server. Mastodon can be served through Tor as an onion service. From 4e58f74366be35868bee956e55eeb3d9c828f292 Mon Sep 17 00:00:00 2001 From: Jay Graber Date: Mon, 8 Jun 2020 11:49:09 -0700 Subject: [PATCH 8/8] Add 2019 study --- applications/mastodon.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/applications/mastodon.md b/applications/mastodon.md index a9371e5..4dfd3ee 100644 --- a/applications/mastodon.md +++ b/applications/mastodon.md @@ -42,6 +42,10 @@ Some documented [challenges with moderation in Mastodon](https://nolanlawson.com There is [no unified global search in Mastodon](https://github.com/tootsuite/mastodon/issues/9529), as each server monitors a different set of messages. Searching for the same keyword on different instances yields different results. The federated timeline shows public posts that the user's server knows about. Essentially, users have access to posts of people followed by people on their instance. +Mastodon users are presented with three timelines: a home timeline with posts from accounts the user follows, a local timeline with posts from the local instance, and a federated timeline with all posts that have been retrieved from remote instances. + +A [2019 analysis](https://emilianodc.com/PAPERS/mastodonIMC19.pdf) of the Mastodon ecosystem found that the majority of posts are concentrated on a few instances, and outages in 10 instances would remove almost half of all posts from the network. + Mastodon's interface has a "Profile Directory" tab, where users can browse recently active profiles or new arrivals from both their own instance or the fediverse to discover who to follow. Users can select featured hashtags to be displayed on their public profile so people can browse their posts by hashtag. ### Privacy and Access Control