mirror of
https://github.com/mastodon/mastodon.git
synced 2024-12-29 14:35:06 +01:00
50 lines
2.4 KiB
Markdown
50 lines
2.4 KiB
Markdown
# Federation
|
|
|
|
## Supported federation protocols and standards
|
|
|
|
- [ActivityPub](https://www.w3.org/TR/activitypub/) (Server-to-Server)
|
|
- [WebFinger](https://webfinger.net/)
|
|
- [Http Signatures](https://datatracker.ietf.org/doc/html/draft-cavage-http-signatures)
|
|
- [NodeInfo](https://nodeinfo.diaspora.software/)
|
|
|
|
## Supported FEPs
|
|
|
|
- [FEP-67ff: FEDERATION.md](https://codeberg.org/fediverse/fep/src/branch/main/fep/67ff/fep-67ff.md)
|
|
- [FEP-f1d5: NodeInfo in Fediverse Software](https://codeberg.org/fediverse/fep/src/branch/main/fep/f1d5/fep-f1d5.md)
|
|
- [FEP-8fcf: Followers collection synchronization across servers](https://codeberg.org/fediverse/fep/src/branch/main/fep/8fcf/fep-8fcf.md)
|
|
- [FEP-5feb: Search indexing consent for actors](https://codeberg.org/fediverse/fep/src/branch/main/fep/5feb/fep-5feb.md)
|
|
|
|
## ActivityPub in Mastodon
|
|
|
|
Mastodon largely follows the ActivityPub server-to-server specification but it makes uses of some non-standard extensions, some of which are required for interacting with Mastodon at all.
|
|
|
|
- [Supported ActivityPub vocabulary](https://docs.joinmastodon.org/spec/activitypub/)
|
|
|
|
### Required extensions
|
|
|
|
#### WebFinger
|
|
|
|
In Mastodon, users are identified by a `username` and `domain` pair (e.g., `Gargron@mastodon.social`).
|
|
This is used both for discovery and for unambiguously mentioning users across the fediverse. Furthermore, this is part of Mastodon's database design from its very beginnings.
|
|
|
|
As a result, Mastodon requires that each ActivityPub actor uniquely maps back to an `acct:` URI that can be resolved via WebFinger.
|
|
|
|
- [WebFinger information and examples](https://docs.joinmastodon.org/spec/webfinger/)
|
|
|
|
#### HTTP Signatures
|
|
|
|
In order to authenticate activities, Mastodon relies on HTTP Signatures, signing every `POST` and `GET` request to other ActivityPub implementations on behalf of the user authoring an activity (for `POST` requests) or an actor representing the Mastodon server itself (for most `GET` requests).
|
|
|
|
Mastodon requires all `POST` requests to be signed, and MAY require `GET` requests to be signed, depending on the configuration of the Mastodon server.
|
|
|
|
- [HTTP Signatures information and examples](https://docs.joinmastodon.org/spec/security/#http)
|
|
|
|
### Optional extensions
|
|
|
|
- [Linked-Data Signatures](https://docs.joinmastodon.org/spec/security/#ld)
|
|
- [Bearcaps](https://docs.joinmastodon.org/spec/bearcaps/)
|
|
|
|
### Additional documentation
|
|
|
|
- [Mastodon documentation](https://docs.joinmastodon.org/)
|