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
221
fedi-slide.md
221
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.
|
||||
|
||||
- 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)
|
||||
<!-- _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