v1
This commit is contained in:
parent
c5206b5a17
commit
7fe4d16ccf
6 changed files with 518 additions and 25 deletions
322
fedi-slide.html
322
fedi-slide.html
File diff suppressed because one or more lines are too long
219
fedi-slide.md
219
fedi-slide.md
|
@ -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
BIN
image-2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 331 KiB |
BIN
image-3.png
Normal file
BIN
image-3.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 127 KiB |
BIN
image-4.png
Normal file
BIN
image-4.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
BIN
image-5.png
Normal file
BIN
image-5.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.1 KiB |
Loading…
Reference in a new issue