{"id":698,"date":"2022-12-02T15:56:28","date_gmt":"2022-12-02T15:56:28","guid":{"rendered":"https:\/\/teaching.sociology.ul.ie\/bhalpin\/wordpress\/?p=698"},"modified":"2022-12-02T17:08:31","modified_gmt":"2022-12-02T17:08:31","slug":"pinging-mastodon-instances","status":"publish","type":"post","link":"https:\/\/teaching.sociology.ul.ie\/bhalpin\/wordpress\/?p=698","title":{"rendered":"Pinging Mastodon instances"},"content":{"rendered":"<p>Mastodon is less discoverable than Twitter, particularly because it doesn&#8217;t have full-text search, and because it has multiple instances. How do we know what&#8217;s going on, or which instances are particularly active?<\/p>\n<p>There is a webpage of instance data somewhere. That is a good starting point.<\/p>\n<p>But what about propagation of individual posts? How do they get seen, how quickly do other instances pick them up, which other instances? Here I summarise a quick experiment that exploits a feaure of mastodon software&#8217;s behaviour to map out some details of how a post is seen by other instances.<!--more--><\/p>\n<p>It appears that as soon as Mastodon instances see a post containing an (as yet unseen) URL, they pre-fetch it. This has been causing a certain amount of controversy over the past few days as website owners have seen unexpected bursts of traffic.<\/p>\n<p>My small experiment: I a sent out test post from my account on mastodon.social, every 3 hours over 18 hours, each time with a fresh URL, and watched my web-logs. What did I learn:<\/p>\n<ol class=\"org-ol\">\n<li>Yes, there is an immediate flurry of GET requests<\/li>\n<li>Of the order of 60 instances respond to any one post<\/li>\n<li>54 instances respond to every post<\/li>\n<li>No instance responds twice to the same URL<\/li>\n<li>If someone from another instance responds to the post (hi, @reliablyjeff@sciences.social) all bets are off<\/li>\n<li>Some instances are very slow to respond: possibly because it is the originating host, mastodon.social responds within a minute to the first post, but takes several hours for the rest<\/li>\n<\/ol>\n<p>Excluding the two waves where there people responded to the test posts, and mastodon.social, mean delay is 151 seconds, median 34.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium\" src=\"http:\/\/teaching.sociology.ul.ie\/bhalpin\/instdelaypure.png\" width=\"1650\" height=\"1200\" \/><\/p>\n<p>\u00a0Apart from mastodon.social, there are a few instances (mastodon.sdf.org, mstdn.ca, nonexiste.net) that sometimes take more than an hour to respond.<\/p>\n<p>\u00a0<\/p>\n<p>When people reply to a post, there is a new flurry of GET requests. These are presumably from instances that are checking out the replier&#8217;s instance, but not mastodon.social. I had one reply from mastodon.online, which triggered requests from the following list of instances:<\/p>\n<ul class=\"org-ul\">\n<li>mastodon.coffee<\/li>\n<li>amastodon.uk<\/li>\n<li>post.lurk.org<\/li>\n<li>jamesgallagher.social<\/li>\n<li>mastodon.gamedev.place<\/li>\n<\/ul>\n<p>The reply from sciences.social provoked more requests (either it is a lot better connected than mastodon.online or its network overlaps with mastodon.social&#8217;s a lot less than mastodon.online&#8217;s does; my bet is more the former than the latter):<\/p>\n<blockquote>\n<p>mastodon-belgium.be, sigmoid.social, social.tchncs.de, historians.social, social.anoxinon.de, digitalcourage.social, saturation.social, social.bigger6.com, bhre.social, mastodon.nz, social.kiesow.net, h-net.social, freiburg.social, sfba.social, mstdn.dk, m.cmx.im, zirk.us, awscommunity.social, chaos.social, lile.cl, mastodon.lawprofs.org, ruhr.social, social.brimstor.me, libretooth.gr, todon.eu, lipn.info, mastodon.nl, mindly.social, edumasto.org, links.potsda.mn, union.place, mastodont.cat, det.social, data-folks.masto.host, writing.exchange, ravenation.club, federate.social, aleph.land, octodon.social, medibubble.org, mastodon.energy, hci.social, ursal.zone, mastodon.lol, ohai.social, twit.social, mastodon.com.py, masthead.social, glammr.us, m.sclo.nl, social.cologne, hcommons.social, uddannelse.social, norden.social, bildung.social, masto.es, sueden.social, towns.gay, fandom.ink<\/p>\n<\/blockquote>\n<p>At the end of all this I feel I understand a little bit more about Mastodon networking and how posts might propagate. Nothing, perhaps, that couldn&#8217;t be inferred from a knowledge of how the software is written, but now from observing the behaviour I understand a little bit more about the software.<\/p>\n<p>The one thing I haven&#8217;t yet done is check out the size of the instances: many of the requests, and perhaps disproportionately many of the &#8220;unique&#8221; requests, will be from very small instances. On the TODO list.<\/p>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mastodon is less discoverable than Twitter, particularly because it doesn&#8217;t have full-text search, and because it has multiple instances. How do we know what&#8217;s going on, or which instances are particularly active? There is a webpage of instance data somewhere. That is a good starting point. But what about propagation of individual posts? How do &hellip; <a href=\"https:\/\/teaching.sociology.ul.ie\/bhalpin\/wordpress\/?p=698\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Pinging Mastodon instances<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[22,24,23],"_links":{"self":[{"href":"https:\/\/teaching.sociology.ul.ie\/bhalpin\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/698"}],"collection":[{"href":"https:\/\/teaching.sociology.ul.ie\/bhalpin\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/teaching.sociology.ul.ie\/bhalpin\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/teaching.sociology.ul.ie\/bhalpin\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/teaching.sociology.ul.ie\/bhalpin\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=698"}],"version-history":[{"count":9,"href":"https:\/\/teaching.sociology.ul.ie\/bhalpin\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/698\/revisions"}],"predecessor-version":[{"id":709,"href":"https:\/\/teaching.sociology.ul.ie\/bhalpin\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/698\/revisions\/709"}],"wp:attachment":[{"href":"https:\/\/teaching.sociology.ul.ie\/bhalpin\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=698"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/teaching.sociology.ul.ie\/bhalpin\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=698"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/teaching.sociology.ul.ie\/bhalpin\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=698"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}