Finish madstodon

This commit is contained in:
Jay Graber 2020-06-05 09:41:34 -07:00
parent 19d3f55caa
commit 54ef767f97
1 changed files with 96 additions and 0 deletions

View File

@ -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 users 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 users 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. Mastodons 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/)