This commit is contained in:
April John 2023-06-19 09:40:24 +02:00
parent c5206b5a17
commit 7fe4d16ccf
6 changed files with 518 additions and 25 deletions

File diff suppressed because one or more lines are too long

View file

@ -45,6 +45,18 @@ April John
--- ---
# The Fediverse (federated universe)
![h:250 bg right](https://upload.wikimedia.org/wikipedia/commons/thumb/9/93/Fediverse_logo_proposal.svg/2048px-Fediverse_logo_proposal.svg.png)
<!-- _footer: "*Photo by [Eukombos](https://commons.wikimedia.org/wiki/User:Eukombos), CC0 via [Wikimedia Commons](https://commons.wikimedia.org/wiki/File:Fediverse_logo_proposal.svg)*" -->
- users on different servers communicate via a shared protocol
-
---
# The idea of a federated universe. # The idea of a federated universe.
- Founding of twitter in 2006 as microblogging service - Founding of twitter in 2006 as microblogging service
@ -55,13 +67,214 @@ April John
--- ---
# Fediverse? You mean Mastodon? # You heard of Mastodon?
![h:250 bg right](https://upload.wikimedia.org/wikipedia/commons/thumb/9/93/Fediverse_logo_proposal.svg/2048px-Fediverse_logo_proposal.svg.png)
<!-- _footer: "*Photo by [Eukombos](https://commons.wikimedia.org/wiki/User:Eukombos), CC0 via [Wikimedia Commons](https://commons.wikimedia.org/wiki/File:Fediverse_logo_proposal.svg)*" --> ---
# You heard of Mastodon?
...there is more.
--- ---
![h:690 bg](https://axbom.com/content/images/size/w2000/2023/01/fediverse-branches-axbom-30-CC-BY-SA.webp) ![h:690 bg](https://axbom.com/content/images/size/w2000/2023/01/fediverse-branches-axbom-30-CC-BY-SA.webp)
<!-- _footer: "*Photo by axbom.com, CC BY-SA via https://axbom.com/fediverse/*" --> <!-- _footer: "*Photo by axbom.com, CC BY-SA via https://axbom.com/fediverse/*" -->
---
# Activitypub
- protocol introduced in 2018
- idea of a universal standard for any multimedia service to communicate between servers
- i.e. servers chaos.social and crimew.gay communicating with each other
- especially popular for microblogging
---
# The architecture of Activitypub
![Alt text](image-2.png)
<!-- _footer: "*Photo by fastly.com*" -->
---
# Actors and Activities
### Actors represent People, Video Channels, Podcasts
![Alt text](image-3.png)
### Activities represent Posts, Videos, Audio
![Alt text](image-4.png)
---
# Actors and Activities
### Actors represent People, Video Channels, Podcasts
```
{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Person",
"id": "https://crimew.gay/users/luna",
"name": "luna 'delete & redraft' vivian.",
"preferredUsername": "luna",
"summary": "hi, i'm luna, your local 18 year old gay ace polyam non-binary transfem genderfluid mess.",
"inbox": "https://crimew.gay/users/luna/inbox/",
"outbox": "https://crimew.gay/users/luna/outbox/",
"followers": "https://crimew.gay/users/luna/followers/",
"following": "https://crimew.gay/users/luna/following/",
"liked": "https://crimew.gay/users/luna/liked/"
}
```
---
# Actors and Activities
### Activities represent Posts, Videos, Audio
```
{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Note",
"to": ["https://donotsta.re/users/april"],
"attributedTo": "https://crimew.gay/users/luna",
"content": "it's 4:20, <b>nice</b>"
}
```
---
# Issues of the standard
- barebones specification leading to many unstandartized extensions of the protocol
- happened, because as a w3c standard it had to satisfy many people, and thus less was more
- activitypub sends HTML with Activities, which the Servers need to parse and then server to users
- XSS as a service!
- Limited standard featureset, but we can extend it ourself!
---
# How?
### "Simple", we add extra JSON fields!
---
# Extending the AP protocol
- Projects want new features
- They need to invent the standard to federate these themself
---
# Case study: Cat ears on a profile
- Misskey added support for cat ears on profile pictures: ![h:80](image-5.png)
- federated using a ActivityPub extension called ``isCat``
- Misskey interprets it and displays cat ears
- others like Mastodon just ignore it
---
# Case study: Cat ears on a profile
```
{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Person",
"id": "https://crimew.gay/users/luna",
"name": "luna 'delete & redraft' vivian.",
"preferredUsername": "luna",
"summary": "hi, i'm luna, your local 18 year old gay ace polyam non-binary transfem genderfluid mess.",
"inbox": "https://crimew.gay/users/luna/inbox/",
"outbox": "https://crimew.gay/users/luna/outbox/",
"followers": "https://crimew.gay/users/luna/followers/",
"following": "https://crimew.gay/users/luna/following/",
"liked": "https://crimew.gay/users/luna/liked/",
"isCat": true
}
```
---
# ..that doesnt always work
---
# Multiple standards for the same feature
## Quote posts
- ``_misskey_quote``
- ``quoteUrl``
- ``quoteUri``
---
# Multiple standards for the same feature
## Groups exclusive posts
- Bonfire's circles
- Lemmy's implementation using ``Announce`` and ``Follow``
- Friendica & Hubzilla implementing groups using ActivityStreams
- Smithereen using FEP-400e (Fediverse Enhancement Proposals)
- ....
---
# Mastodon in the meantime
- implementing FEP-400e partially
- adding many own ActivityPub extensions to the mix which werent used in any of the above mentioned projects
- we now have an even different standard
---
# Mastodon messing up things
### The issue with that
- Mastodon is by far the biggest fediverse project
- When mastodon implements something a specific way it turns the de-facto standard
- bad standards impact the fediverse as a whole
---
# Mastodon messing things up
### Things already messed up
- LD-signing
- bad sanity checking of AP ids
- Mastodon storing activities using internal IDs instead of using the provided IDs
- no single implementation of the AP C2S api (yes that exists), they rather use their own
- goal is to preserve a "Mastodon User Experience" by not implementing it
- and soon... Groups
---
# Why things are like this
- every project working on its own
- no real unified effort between fediverse software maintainers to unify features
- working together was tried before, but suffered from disagreement between different software projects
- every software maintainer playing "mini dictator"
- Mastodon having a monopoly, caused my 90% of people being on the 10 most populated instances (which run on mastodon exclusively)
---
# How things could get better
- Fediverse Enhancement Proposals
- standardize activitypub examples using w3c
- AP C2S
- people moving from big instances to small ones
- selfhost it!
---
# Activitypub Client to Server
- part of the original AP spec
- never got implemented fully anywhere
- some clients existed for it
- Pleroma started implementation of it, Mastodon refused to do it for 5 years in a row
- essentially universal API for all activitypub servers, using the same standards as between server communication
- makes it able to use one client for all* AP servers
<!-- _footer: all that implement it -->
- takes much load of the server
---
# Selfhost it!
- big instances work against decentralisation of the fediverse
- reason Mastodon got the biggest fedi software in the first place
- own instances gives you independance
- lets you deal with fediblocks yourself
---
# Issues with self hosting
- money
- one needs to administer the instance themself
- your server hardware may be overwhelmed
- fedi consumes much storage
---
# How to selfhost
- get suitable hardware & domain
- What instance do you want?
- How do you want to deploy it?
- Do you want to use a S3 bucket?
- Follow relays!
---
# What can the future hold?
### Universal Peer-to-peer
### More smaller instances
---
# Ending words
## Distrust authorities - promote decentralisation

BIN
image-2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 KiB

BIN
image-3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

BIN
image-4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
image-5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB