this post was submitted on 27 Jun 2023
18 points (95.0% liked)

Fediverse

17776 readers
44 users here now

A community dedicated to fediverse news and discussion.

Fediverse is a portmanteau of "federation" and "universe".

Getting started on Fediverse;

founded 5 years ago
MODERATORS
 

Hello everyone.
I am relatively new here on Lemmy, and the Fediverse, and there is still a lot I am trying to learn.
I think I understand the general theory of how the different instances and communities work here on Lemmy, but I'm struggling to understand how the different federated software interacts with each other.
For example, I understand that it is possible to follow a community, commenting on its posts, or a user subscribed to Lemmy even from Mastodon. Similarly, it is possible to follow an author on Write.as, again through Mastodon.
What I wanted to understand is what software in the Fediverse interacts with each other, how, and how do you get them to interact.
I hope someone can help me better understand how things work, as I find the idea of the Fediverse absolutely fascinating, a real breath of fresh air in the modern Internet landscape.

top 10 comments
sorted by: hot top controversial new old
[–] [email protected] 15 points 1 year ago (1 children)

Every user, post, community, etc. on each of these services is represented as an ActivityPub object. Let's take the example of following your Lemmy user from Mastodon. I can search for @[email protected] in Mastodon and in the background my Mastodon instance will issue the following WebFinger request to lemmy.ml: https://lemmy.ml/.well-known/webfinger?resource=acct:[email protected]. This will return the following JSON: -

{
  "subject": "acct:[email protected]",
  "links": [
    {
      "rel": "http://webfinger.net/rel/profile-page",
      "type": "text/html",
      "href": "https://lemmy.ml/u/Gohos"
    },
    {
      "rel": "self",
      "type": "application/activity+json",
      "href": "https://lemmy.ml/u/Gohos",
      "properties": {
        "https://www.w3.org/ns/activitystreams#type": "Person"
      }
    }
  ]
}

From here I can request the application/activity+json URL at https://lemmy.ml/u/Gohos and if I request JSON I get: -

{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    "https://w3id.org/security/v1",
    {
      "lemmy": "https://join-lemmy.org/ns#",
      "litepub": "http://litepub.social/ns#",
      "pt": "https://joinpeertube.org/ns#",
      "sc": "http://schema.org/",
      "ChatMessage": "litepub:ChatMessage",
      "commentsEnabled": "pt:commentsEnabled",
      "sensitive": "as:sensitive",
      "matrixUserId": "lemmy:matrixUserId",
      "postingRestrictedToMods": "lemmy:postingRestrictedToMods",
      "removeData": "lemmy:removeData",
      "stickied": "lemmy:stickied",
      "moderators": {
        "@type": "@id",
        "@id": "lemmy:moderators"
      },
      "expires": "as:endTime",
      "distinguished": "lemmy:distinguished",
      "language": "sc:inLanguage",
      "identifier": "sc:identifier"
    }
  ],
  "type": "Person",
  "id": "https://lemmy.ml/u/Gohos",
  "preferredUsername": "Gohos",
  "inbox": "https://lemmy.ml/u/Gohos/inbox",
  "outbox": "https://lemmy.ml/u/Gohos/outbox",
  "publicKey": {
    "id": "https://lemmy.ml/u/Gohos#main-key",
    "owner": "https://lemmy.ml/u/Gohos",
    "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwDc9TbmcvR/eRx0zuXl5\nqUu8vwcU3K1/70BqLdae/HtbjqXoHbVUI3exSVOTLVmPQ4oHjf6Lq5axyRRwihTh\nbDgWYSBCqZ07L6VrgXVg2APCkFpX32XlbFbbMQDXf+kodj6YrzwelXEJ03eTDKaa\nuFkFt0Uelu1k0AZVydGYT3U2iZ0jNGvpUMWQycTJ/k0r8n61JLuEMkvkVlH4ZDGb\nGTjwjLRds/zawe8FAK/Grn+AW/UTmW/1kBLcqhkeRYzWhyrVy+/f9jf03s0rW92w\n8PWM02AAE9edIpnK2XgElfkVWJenQzw7WDp045XPHMlUh5iizAJGcPAzdeEVNLq8\nGQIDAQAB\n-----END PUBLIC KEY-----\n"
  },
  "endpoints": {
    "sharedInbox": "https://lemmy.ml/inbox"
  },
  "published": "2023-06-03T17:30:16.990908+00:00"
}

This includes two important properties: inbox and outbox. Using ActivityPub I now know I can send you a message by POSTing a request to your inbox and I can fetch posts, comments, etc. you've made via your outbox.

Your public key is also included. This is how, if you sent me a message, I can verify that the message actually came from you.

That's a very brief overview but I hope that helps!

[–] [email protected] 6 points 1 year ago (1 children)
[–] [email protected] 5 points 1 year ago (1 children)
[–] [email protected] 1 points 1 year ago

I expected the link to point to IP over Avian Carriers

[–] [email protected] 4 points 1 year ago (2 children)

ActivityPub. It's a protocol just like SMTP for email. It allows these different platforms you mentioned to interact with each other. They all together form the fediverse.

[–] [email protected] 3 points 1 year ago (1 children)

So far I have understood it.
I meant the question in the most practical way: how can I make different software in the Fediverse interact, and which ones can interact with each other?
For example, since it is possible to follow a Lemmy community on Mastodon is it also possible to do the reverse and follow a Mastodon user here on Lemmy? Or is it possible to follow a Peertube channel here on Lemmy?

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago) (1 children)

I'm asking myself the same question. Do I need to make an account for every platform/service I'm interested in, or can I just use the same account for everything?

From what I've understood so far, the ActivityPub seems to support the integration of different platforms in theory, but there is currently no client software that can show me an integrated feed with everything.

[–] [email protected] 1 points 1 year ago

You can create an account on a single Lemmy instance/server, and use that one account on that instance to subscribe to other communities on other instances. Those communities then show up in your subscribed "feed" on the server where your account is.

You can see all the posts from all the communities you've subscribed to on your feed on the instance you signed up on, without needing a client app, or you can install one of a few apps for either Android or iPhone. On these apps, you sign into your account by providing the address for your "home" Lemmy instance, and then enter your username and password for your account on that instance. Then you'll see your feed and everything you've subscribed to.

You can post on any community on any server you've subscribed to using that one account, and your home instance will sync your posts to that community in the same way it syncs posts from your subscribed communities to your home server so you can see them when you look at your feed.

[–] [email protected] -2 points 1 year ago* (last edited 1 year ago)

From @wason

#ActivityPub. It's a #protocol just like SMTP for email. It allows these different platforms you mentioned to interact with each other. They all together form the #fediverse.
#activitypub #federated #software

@Gohos

[–] [email protected] 3 points 1 year ago

All platforms on the fediverse interact because they are part of the same protocol, ActivityPub. (While there are more federated and decentralised protocols, "Fediverse" refers to ActivityPub based social network)

Other federated and/or decentralised platforms have other protocols, for example Diaspora* which has its own protocol, also supported by Hubzilla (which main protocol is Zot and also supports AP), Friendica (also AP and Ostatus) and SocialHome. Or Ostatus (GNU Social, Pleroma (also AP), and Matrix (Matrix)

A social media can interact with other social media that share the same protocol.

so Friendica can interact with Diaspora, Lemmy and GNU social, because it supports Diapora*, AP and OStatus, but the other three, being mono-protocol cannot interact with each other.

load more comments
view more: next ›