さて、ここまでサーバが説明されていません。存在感ゼロですね!
実は、ActivityPubでは、サーバーを直接表すActorのような定義がありません。
便宜上、サーバーにもActorを割り当てることはありますが、主役ではありません。
とはいえ、サーバーの存在は別の形で表現されていて、効率の改善に貢献しています。
先程のActor毎のinboxがありましたが、この他にshared_inboxという、同じサーバのActorが共有して使うinboxがあります。
このshared_inboxにActivityを送ると、Activityに指定しておいた宛先のActorに対して、相手サーバーに委託してまとめて送ることができるようになります。
「あなたのサーバの、私のフォロワーに対して、Create - Noteしたのでよろしくね!」という感じで、shared_inboxに一回だけ送れば済む仕組みです。
実際の動きとしては、followersコレクションのActorのshared_inboxを調べ、同じものは一つにまとめてしまい、送信件数を最小限に減らしています。
なお、shared_inboxが無い場合は、個々のinboxに送ります。
Actorは、それぞれがinboxというActivityを受け入れる窓口を持っていて、他のActorから送られてきたActivityを処理します。
また、自分が送ったActivityをoutboxに保持しています(ずっと溜まっていきます)。
フォローしているActorのコレクション following も持っています。
フォローされているActorのコレクション followers も持っています。
これは、フォローを要求して、それが受け入れられた時に、お互いがコレクションに追加することで、その状態を維持します。
新しい投稿(Note)をCreateした時、つまり新規投稿時には、followersコレクションのActorのinboxに対してActivityを送ります。
そうすると、フォロワーのActorは、inboxに届いたActivityを処理して、フォロー相手の投稿が読めるようになります。
Activityを発行したActorが、フォロワーに対してそれを送信することで、お互いが繋がるネットワークが実現されています。
MastodonやMisskeyが、それぞれ別々に設置されている違うプログラムなのに、お互いに繋がることができる仕組みは、主に『ActivityPub』という通信規約(プロトコル)によって実現されています。
ActivityPubでは、私たち一人一人のアカウントをActorと呼びます。
Actorは、別のActorと、「フォローしたい」「いいよ」というやりとりをします。
投稿に対して「好き!」って反応したり、新しいノートを「作ったよ」、ノートをみんなに「アナウンス」します(ブースト・リノート)
これらのやりとりの語彙があらかじめ定義されています。
先程の例の順番でいうと、Follow, Accept, Like, Create, Announce というActivityとして定義されています。
Activityは、何を対象とするかを伴っていて、Actorを対象とするときもあれば、投稿(短い文章)を表す表現であるNoteや、「フォローしたい」というリクエストを許可したり、送った側が取り消すために、「フォローしたい」というActivityそのものを対象として指定することもあります。
このあたりの約束ごとが共通化されているため、それに従うことで、お互いのやりとりが可能になっています。
インスタントやきそばのソースを先に入れてしまう
えーと、mainに追加されたプロフィールカード表示が鬱陶しいとか、誤操作(フォロー・解除など)が発生しやすいってやつ?
「せっかくだから、俺はこの赤のMastodonを選ぶぜ!」
(開発用)
そろそろカルディのThreadsアカウントの投稿がまばらにしか届かない理由に行き着きましたかね?(聞かなきゃわからん)
私のさきほどのThreadsアカウントのアクティビティ(いいねやリプライなどの一覧)ですが、
最初は『フェディバースユーザー』になっていますが、
途中からfedibird.comからきたリプライに。ここからアカウントを認識してますねー。
このFediverseからきたリプライには、まだ返信はできません(返信ボタンはグレーアウト)。
でも返信にいいねはつけられるので、それはこちらに届くかも……。
#fedibird #fedibird_info YouTubeのプレビューカードが埋め込み再生にならない件、ウチだけの問題ではなさそうですが、
とりあえずFedibirdでは対策とりましたので、新しい動画については表示されるようになると思います。
一度ダメと覚えてしまったものは2週間経過すると再取得しますが、こちらでプレビューカードをリセットすることも可能ですので、必要でしたらURLを添えてお申し付けください。
主に、Fediverseへの関心に基づいた投稿を行うアカウントです。DTP・印刷に関する話をしたり、同人の話をしたり、カレーをブーストしたりします。
Mastodonのcollaborator(開発者の一員)です。また、独自機能を盛り込んだFedibirdを管理・開発しています!
Mastodonサーバ『fedibird.com』の管理者アカウントでもあります。ご連絡は当アカウントへ、サーバインフォメーションについては https://fedibird.com/about/more と @info を参照してください。