Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/reiver/fediverse-protocol-following
fediverse protocol: following
https://github.com/reiver/fediverse-protocol-following
activitypub activitypub-protocol dns-srv dns-srv-records host-meta webfinger
Last synced: 6 days ago
JSON representation
fediverse protocol: following
- Host: GitHub
- URL: https://github.com/reiver/fediverse-protocol-following
- Owner: reiver
- Created: 2023-02-06T05:11:21.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2023-02-06T11:35:25.000Z (almost 2 years ago)
- Last Synced: 2024-04-17T20:19:18.435Z (10 months ago)
- Topics: activitypub, activitypub-protocol, dns-srv, dns-srv-records, host-meta, webfinger
- Homepage:
- Size: 5.86 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Fediverse Protocol: following
This document gives an overview the process used to follow someone (or something) on the Fediverse.
What it describes is the idealized process.
When a particular Fediverse software does _not_ implement a step described in this document, it is mentioned.
## Table of Contents
* Step 0: Actor
* Step 1: DNS SRV
* Step 2: Web Host Metadata
* Step 3: WebFinger
* Step 4:## Step 0: Actor
People on the Fediverse are identified with identifiers that look like these:
* `@[email protected]`
* `@[email protected]`
* `@[email protected]`There are 2 parts of these identifiers —
1. actor name, and
2. host.Let's take a look at an example to help make this clearer:
```
@[email protected]
\--+--/ \-----+----/
| |
actor name host
```
In this example —* the **actor name** is `dariush`, and
* the **host** is `changelog.ca`Let's look at another example:
```
@[email protected]
\--+--/ \----+----/
| |
actor name host
```
In this example —* the **actor name** is `joeblow`, and
* the **host** is `example.com`Here are a number of other examples:
| Actor | Actor Name | Host |
|---------------------------------------|------------|------------------------------|
| `@[email protected]` | `joeblow` | `example.com` |
| `@[email protected]` | `janedoe` | `apple.banana.cherry.social` |
| `@[email protected]` | `dariush` | `changelog.ca` |
| `@[email protected]` | `malekeh` | `social.example.net` |
| `[email protected]` | `tom` | `apple.aaa` |
| `[email protected]` | `dick` | `banana.bbb` |
| `[email protected]` | `harry` | `cherry.ccc` |Now on to the next step....
# Step 1: DNS SRV
The next step to follow someone on the Fediverse is —
Do a DNS SRV look-up on the **host** (you inferred in the previous), with **protocol** = `"tcp"` and **service** = `"webfinger",` to discover if the **WebFinger** is on this **host** or another **host**.
So, for example, if your actor identifier was:
> `@[email protected]`
Then that means that the **actor name** and **host** is as follows:
| Actor | Actor Name | Host |
|---------------------------------------|------------|------------------------------|
| `@[email protected]` | `joeblow` | `example.com` |So then, a DNS SRV look-up on **host** = `example.com` with **protocol** = `"tcp"` and **service** = `"webfinger"` means we look-up `_webfinger._tcp.example.com.`
If something comes up, then that is the new value for **host** in the next step.
If nothing came up, then keep the same value for **host** in the next step.# Step 2: Web Host Metadata