マストドン (ミニブログ)
マストドン (Mastodon) はミニブログサービスを提供するためのフリーソフトウェア、またはこれが提供する連合型のソーシャルネットワークサービスである。開発者はドイツのプログラマーであるオイゲン・ロチコ (Eugen Rochko)。「脱中央集権型」 (decentralized) のマストドンのサーバーはだれでも自由に運用する事が可能であり、利用者は通常このサーバーの一つを選んで所属するが、異なるサーバーに属する利用者間のコミュニケーションも容易である。名前について、 GitHub で公開されている FAQ において、ロチコは「私は同名のプログレッシブバンドのファンで、そこからマストドンという動物に興味を持つようになった。この動物とマストドンという名前は大変クールであると考えた」としている。
サービスとしてのマストドンは短文投稿型のSNSである。WebUIは、Twitter用のクライアントTweetDeckに類似した外観を持ち、画面は複数のカラムによって分割された構成になっている。
マストドンでは利用者の投稿する短文は「トゥート」と呼ばれており、500文字の制限がある。他の利用者を「フォロー」することで、その利用者の投稿を「ホームタイムライン」と呼ばれるカラム上で読むことができるようになる点は先行サービスと同様である。トゥートの閲覧に関する制限導入が可能なのも同じだが、それらについてはより細かい調整が可能となっている（トゥートとプライバシー機能を参照）。
マストドンではマストドンの一個一個のサーバーの事を「インスタンス」と呼ぶ。インスタンスは複数の利用者がぶら下がる分岐点 (ノード) となり、インスタンス間はActivityPub（バージョン1.6.0以前はOStatus）を用いて通信を行う。こうしたマストドンのネットワークは電子メールのそれに類似している。電子メール同様、利用者は自分とは別のインスタンスに属する利用者と交流が可能である。また、他のインスタンスへと利用者がアカウントを移行させるための機能も提供されている。
「中央集権型」のサービスでは全ての利用者は単一の管理者(Twitter, Inc.など)が運営するサーバーにログインする。また、その様なサービスの運営者はソースコードを公開していないため他の管理者が同一のサービスを運営していることは基本的に無く、クライアントソフトにも運営者を切り替える機能は搭載されていない。
マストドンは管理者も設置場所も異なる多数のインスタンスで運用されており、利用者は自分自身でインスタンスを選ぶか、自身でインスタンスを開設し、アカウントを作成、これにログインする。管理者は自身のインスタンスを自由に操作出来るため、Twitterの様な「中央集権型」なサービスも提供することも出来る。マストドンのクライアントソフトには通常、運営者を切り替える機能が搭載されている。また、APIが広く公開されており、クライアントや関連アプリケーションの製作が単一の管理者によって制限されない。
なお、大元がソフトウェアであるためバージョンアップに際し、運用するインスタンスは任意にバージョンアップが可能となっているが、それによる若干の不具合（カスタムしているインスタンス、バージョンの異なるインスタンス間など）が出ることもある。
元がソフトウェアとしての配布であるため、ライセンスに基づき、各インスタンスによる独自の改良が可能となっている。これにより、企業向けツールの土台として利用できる。#使用技術も参照。
Twitterのような中央集権型のサービスであれば利用者はアカウントを作成するだけでサービスを利用できるが、マストドンの場合、利用者は一般的には自分が所属するインスタンスを決めてそこにアカウントを作成する必要がある。インスタンスを設置するための特別な資格や権限は必要ないため、自分で使用するためのインスタンスを新たに設置する事もできる。2017年4月現在、500以上のインスタンスが運用されている。
その仕組み上、悪意あるインスタンスが自身に登録した利用者を攻撃する・情報を悪用するといった可能性は否定できずこれを防ぐことは困難である。マストドンは信頼できるインスタンスにアカウントを作成するよう呼び掛けている。
マストドンのネットワーク全体には利用規約に相当するものは存在しない。その代わり、個々のインスタンスの管理者は自身のインスタンスの利用者に対し利用規約を設定し、これに違反したアカウントを削除する事ができる。また各インスタンスは自身のポリシーに合わない投稿が行われるインスタンスとの通信を遮断できる。ロチコは「コミュニティが密接で小規模であるほど、その中で有害な振る舞いは隠蔽されにくい」と述べており、このような小規模コミュニティによるインスタンスが自身のポリシーに近い他のインスタンスと連合を作ることによって、中央集権型のサービスが支払わざるを得ない、ハラスメントなどの不正行為の対策に割く莫大なコストを削減できると主張している。不正行為そのものを目的としたインスタンスが登場する可能性についても考慮されており、各インスタンスは不正インスタンスとの通信を遮断する事で自身に属する利用者を保護できる。こうした連合型のSNS特有の不正行為対策とは別に、Twitterのブロックやスパム通報に相当する、ハラスメントの被害者などが利用するための自衛手段も用意されている。
バージョン2.0.0より、実装されたカスタム絵文字の機能でインスタンス内の雰囲気などに合わせて自由に絵文字を増やすことができるようになる、分散型特有の機能が追加された。また、Twitterでも使用されている様な「フォローしているアカウントのリスト機能」も追加された。
利用者は自分のトゥート一つ一つに対し「公開」するか否かを設定できる。利用者の投稿した公開トゥートは、自身がフォローした利用者のトゥートが表示される「ホームタイムライン」と呼ばれるカラムとは別の、「公開タイムライン」と呼ばれるカラムにも集約される。公開タイムラインには「ローカルタイムライン (Local timeline)」と「連合タイムライン (Federated timeline)」の二種類が存在している。ローカルタイムラインではそのインスタンスに所属している全利用者の公開トゥートが表示される。
一方連合タイムラインではインスタンスが「知っている」全ての公開トゥートが表示される。これは「同一インスタンスの全利用者の公開トゥート」・「同一インスタンスの利用者がフォローしている(他インスタンスの)全利用者の公開トゥート」を意味する。
利用者はトゥートを投稿する際、「公開 (Public)」・「未収載 (Unlisted)」・「フォロワー限定 (Followers-only)」・「ダイレクト (Direct)」の4段階のプライバシーレベルから一つを選択する。先に述べた通り「公開」に設定したトゥートは公開タイムラインとホームタイムラインの両方に表示される。「未収載」のトゥートは、投稿者のプロフィール画面などからだれでも閲覧できるという点では公開されていることになるが、こちらについては「公開」とは異なり公開タイムラインには集約されない。フォロワー限定とダイレクトは更に閲覧できる利用者の範囲を狭め、前者は利用者のフォロワーに、後者は指定した利用者に閲覧を限定する。
封切りされたばかりの映画の核心・閲覧者に不快感を及ぼしうる性的あるいはグロテスクな内容など、誰の目に触れても問題ないとは言えない投稿を行う際、投稿者本人が閲覧者に配慮するための機能として、マストドンは「コンテンツ警告」と「NSFW (not safe for work)」の2つを提供している。
コンテンツ警告を使用すると、投稿者が自由に設定できる警告文と本文からなるトゥートは本文が非表示の状態で他の利用者に表示され、「もっと見る (SHOW MORE)」と書かれたボタンをクリックした閲覧者にのみ隠されていた本文が表示される。
コンテンツ警告はトゥート本文を隠すためだけの機能であり、画像や動画などのトゥートに添付されたサブコンテンツについてはそのまま表示されてしまう。サブコンテンツを非表示にするための機能がNSFWである。利用者がファイルを添付した後新たに出現する「NSFW」と記されたボタンを押すと、投稿されたサブコンテンツは閲覧者がクリックするまで非表示の状態となる。トゥート本文とサブコンテンツの両者を隠したい場合、NSFWとコンテンツ警告を同時に使用する事も出来る。
サーバーサイドの言語として Ruby と JavaScript (Node.js)、データベースとして PostgreSQL と Redisを使用。フレームワークとしてサーバーサイドには Ruby on Rails が、フロントエンドには と Redux が使用されている。インスタンス間の通信プロトコルには ActivityPub と OStatus が使用されているため、通信はマストドンのインスタンス間に限定されず、 GNU social や Pleroma のような 同標準に準拠した他のミニブログのサーバーと相互運用可能となっている。ただし ActivityPub と OStatus はあくまでサーバー間通信を規定するプロトコルであり、クライアントAPI の互換性は保証しない。GNU social のクライアントでマストドンのインスタンスにログインする事はできない。
マストドンはバージョン1.6.0より、OStatusからW3Cが策定したActivityPubへの置き換えが始まった。バージョン2.0.0からは、公開範囲が非公開またはダイレクトであるトゥートがOStatusに配信されないという制限が設けられた。このような制限はあるものの、引き続きOStatusとActivityPubのいずれも使用可能である。
前述の通り、マストドンのライセンスはAffero General Public LicenseでGitHubにて公開されており、各インスタンスがライセンスに基づき、独自に改良することが可能である。また、pixivが運営するPawooに実装されたプロフィールページへトゥートをピン留めする機能がマストドン本体に取り込まれるなど、インスタンスの独自機能だったものが、マストドンとしての機能に発展することがある。
マストドンが最初に公開されたのは2016年の10月であったが、アカウント数が目立った増加傾向を示したのは2017年の3月末から4月初頭にかけての事であった。2017年4月7日、The Vergeは現段階の[マストドン全体の]コミュニティは小規模なものであり、Twitterを続けている人を引き付けるほどの個性を未だ確立していない、と評した。アカウント @mastodonusercount@social.lou.lt はマストドンの各インスタンスが自己申告したアカウント数を自動的に集計して公表している。これによれば4月7日の時点ではマストドン全体のアカウント数は約10万であったが、4月13日には20万アカウント、4月21日には40万アカウントを突破した。
日本においては、2017年4月ごろ日本のサーバーで著名だった「mstdn.jp」の運営者が、ドワンゴに入社するニュースとともに、niconicoにて「friends.nico」のインスタンス制作の発表に含む形でマストドンが紹介されたことで広まった。同じく日本で利用者数が多いpixivでも「Pawoo」インスタンスが制作、画像関連の機能が強化され、Twitterでのアカウント凍結で画像投稿に不自由していたユーザーも取りこむ形で利用者が増大していった。なお、どちらも各アカウントからの認証登録が可能となっており、またPawooでは制限がない画像投稿と言う点から日本国外からのインスタンスからトラブルを呼びこまないようにそれらにアクセス制限を掛けている。
また、TwitterのAPI使用条件が厳格化されたことにより、ストリーミング機能が実装されていたUser Streams APIが廃止され、サードパーティー製のアプリが使用できなくなることや、AIによる判断で誤ったアカウント凍結の大量発生・凍結基準の厳格化による一般利用者の永久凍結が発生したことから、2018年8月15日午後から16日の午前にかけて、Twitter利用者の一部がマストドンの（大規模）インスタンスへ流入するといった現象が起こっている。