I recommend evaluating primarily based on the censorship policies of the instance operator. For example, the list of servers on joinmastodon is restricted to those who are actively engaged in censorship of legal speech (full uncensored instances are not indexed there) so you may be interested in searching for instances not shown there, depending on your attitude toward censorship.
- the instance has grown too big and thus some consider it counter-productive towards the federated nature of the protocol
- disagreement with the direction its main developer / maintainer is taking Mastodon, such as intentionally hiding the local timeline from the official iPhone app
- some consider it under-moderated, or not responding quickly enough to reports
- disagreement over its content moderation guidelines
- in case of a mute, it could also be not wanting their federated timeline to be flooded with primarily mastodon.social posts
Lack of federation between these instances and mastodon.social could be a reason not to pick mastodon.social. (Similar situation applies to mastodon.online btw, which is a spin-off server of m.s.)
Another reason to pick a different instance could be not wanting to use mainline Mastodon software. For example because you want to run your own instance on limited hardware (Mastodon can get a bit resource intensive), don't like Ruby, miss certain features, don't like the front-end (though alternative external front-ends to Mastodon do exist), or some other reason.
Personally I've switched my primary use over to an account on an instance that runs Mastodon Glitch Edition, also known as Glitch-Soc (https://glitch-soc.github.io/docs/), which is a compatible fork of Mastodon which implements a bunch of nice features such as increased post character count (Mastodon defaults to 500 characters per post, Glitch-Soc supports increasing this in the server settings), Markdown support (though only instances that also support HTML-formatted posts will see your formatting; mainline Mastodon servers will serve a stripped down version of your post instead), and improved support for filters / content warnings / toot collapsing, optional warnings when posting uncaptioned media, and other additional features.
Another alternative Mastodon fork is Hometown (https://github.com/hometown-fork/hometown) which focuses more on the local timeline (showing posts only from your own instance) with the addition of local-only posts, to nurture a tighter knit community.
Aside from Mastodon there are other implementations of ActivityPub which can still federate with Mastodon instances, such as:
- Misskey (https://github.com/misskey-dev/misskey)
- diaspora* (https://diasporafoundation.org/) (which AFAIK inspired Google Plus back in the day)
- Hubzilla (https://hubzilla.org//page/hubzilla/hubzilla-project)
- Peertube (https://joinpeertube.org/) (focused on peer-to-peer video distribution)
- Friendica (https://friendi.ca/)
- Pleroma (https://pleroma.social/)
- Socialhome (https://socialhome.network/)
- GoToSocial (https://github.com/superseriousbusiness/gotosocial)
- Pixelfed (https://pixelfed.org/) (which started as a sort of federated Instagram alternative) and more.
Fediverse.party (https://fediverse.party/) is a nice way to discover various protocols that make up the bigger Fediverse.
Instances.Social (https://instances.social/) can also be used as an alternative to find instances, though I believe it is limited to Mastodon-based instances.
I don't understand the system well enough to know if this is a dumb question or not.
The answer is: it'll happen automatically. Just search for someone's handle, and your server will talk to that other server. When you follow that other users, your server will start federating with that other servers.
Note though that servers might block each other. For example, many Western servers block Japanese pawoo.net, since it allows posting lolicon. Western servers don't want this content in their timelines and caches, so they block it. If your server blocks another.social, you won't be able to follow anyone on there.
But your question also hints at a real problem with Fediverse (of which Mastodon is a part), which is: each instance only sees a subset of the Fediverse. Thus, searching by hashtag will only get you a subset of all posts that contain it. Full-text search is even more complicated.
They are still decentralised, the aim is to populate the federated timeline. Obviously, the visibility is still a subset of the network.
My /etc/resolv.conf currently uses
options attempts:1 timeout:1 max-inflight:1
nameserver 127.0.0.50
There is nothing listening on 127.0.0.50 and iptables does not permit outbound connections.I am just wondering why is it such a hard requirement for you to stop other people to follow someone else that is not part of your server? Costs?
I am the crazy bold one of the group and the canary in the coal mine. You won't see any of my friends interacting on this or any other social site. I on the other hand email and make phone calls to everyone at every level of government, C-levels in corporations, investors, military leaders, scientists, influencers, etc...
The best example of how it works would be email. You can set up your own email server, and interact with other independent email servers seamlessly, or just find a provider you trust and get your email access from them.
There's also the option of adding "featured hashtags" to one's profile, allowing a user to search for users of a particular interest.
Along with the "Federated Timeline", which others have mentioned, and your follower's boosting posts (akin to retweeting) I've found it quite easy to find a diverse list of people to follow and interact with.