✨Ben Hamill✨ is a user on octodon.social. You can follow them or interact with them if you have an account anywhere in the fediverse. If you don't, you can sign up here.
✨Ben Hamill✨ @benhamill

Can someone point me to a good technical 101 for Mastodon? Or OStatus? Trying to understand: When I make a post, how does another instance find out about it to show to my followers there or the federated timeline?

@benhamill The best advice I can give is to comb trough related issues on github, or just read the protocol specification. ostatus.github.io/spec/OStatus


Someone on irc might be able to help... irc.freenode.net#mastodon

@NthTensor Yaaaaaas. That shown is probably what I need. Thanks!

@benhamill That wont cover all of it. I am still working through the related reading. github.com/tootsuite/documenta


If I am right, and I am likely not, salmon handles the actual updating of the other servers.
salmon-protocol.org/

So I think it's the PubSubHubbub portion that does what I'm looking for.

Current understanding: I make a post & my instance pushes that post to each instance where someone follows me.

Which means if some single-user instance's user follows me, but no one on my instance (including me) follows them, then my instance is "aware" of theirs, but not in a way that their posts would show up on our federated timeline.

Anybody poke holes in that?

@benhamill That is correct. Posts show up in the federated timeline if they pass through your instance for one of a number of reasons, the simplest is that someone on your instance follows them. Also replies to posts from your instance.

@benhamill That sounds like the correct interoperation, yes.


No one on the server has asked for toots from your single user server, so the larger instances doesn't ask for them.


Replies to things might federate. And of course, the occasional toot might find it's way to the first server via retooting.

@NthTensor Middle thing reworded and still correct: No one on my instance has asked for posts from the single-user instance, so my instance never subscribed to them on the single-user server and thus the single-user instance doesn't push them to my instance?

Third thing: Yeah. Good clarification.

I'm chasing this because someone mentioned the idea of a new privacy setting where your instance would more closely federate with a short list of other instances (forming a slightly larger community). Basically a list of other instances your posts would go to that wasn't Just Everyone in the Federation:tm:. I'm trying to understand how that might work on a technical level and it doesn't sound super hard or breakey.

@benhamill It depends on who runs the servers and how close you want them to be...


You could fork the main code, and create a p2p pipeline between the instances so that all toots from one are assured to end up on the other two...


That only works if the admins of the servers are willing to all use the same codebase.

@benhamill Anther solution is follow bots; but at that point, why not just implement them directly in code. After all, you want a closed system.


Follow bots are necessary because they allow for extension over the entire network. You do not require that.

@NthTensor Nah. 100% solve it in Ruby. If I implemented this, I'd be looking at a PR against mainline Mastodon. I don't want a closed system, I want an inner circle and an outer circle, both.

I think I grok this well enough that I might at least open an Issue to discuss it with maintainers.

@benhamill Tell us how this turns out. I am interested.

@benhamill Instances such as awoo.space use a whitelisting vs. blacklisting approach to federation. It would also be possible to allow federation with all instances but limit the federated timeline to a subset. An instance can't do much about where toots go once they leave the instance though. Privacy is difficult in a federated system.

@binary @NthTensor In this case, though, if you posted with the new setting, it would just never notify those instances not in the allow-list. And you'd still have the "Public" setting that would go wherever.

Boosts and such could potentially break your post out, but that's true of Unlisted and Private today, right?

@benhamill when someone follows you on another instance, that instance connects to your instance.

When you post, your instance sends out a message to all the instances connected to it that you posted.