@nosutaruthedoo えっそうなんですか?? そうすると反対に、ブロックするとどこが変わるんですか?
@muku_dori_ ブロックするとたしかに一旦フォロー解除になって、相手の投稿はブロックした側が見れないようになりますが、ブロックされた側は再フォローできてフォローすると投稿も見れますね。
なので、これは自衛…?
@nosutaruthedoo 自衛、なるほど〜〜……勘違いしてました。
そうすると、ブロックして自分から見えなくなったとこで、自分の投稿を見られて何か言及されてたりする可能性もあるってことですね……(サブアカウントがあればそうでなくてもできてしまうけど、それはそれとして)
@muku_dori_ そうですそうです〜
もちろん、サーバーがお互いにブロックしてればお互いの投稿は見れないのですが、片方ブロックだと見える投稿あるんですよね
@nosutaruthedoo その仕様おそろしいですね……
@muku_dori_ 大分、使う側のリテラシーが試されるsnsだと思ってます
@nosutaruthedoo 「Mastodon難しそう」的な反応を見て「慣れの多寡からの抵抗感では」と思うとこもあったのですが(もちろん全部じゃないですが)、あながちそうとも言えませんね
@muku_dori_ そうなんですよね〜
@nosutaruthedoo @muku_dori_ ブロックされたらみえないのが仕様で、通常はきちんと動作します。連合上の不具合でみえてしまうこともある(双方のサーバのブロック状態が一致しなくなることがある)とご理解ください。同一サーバ上では起きません。
@muku_dori_ @nosutaruthedoo ユーザー同士の個別のブロックのお話ですが、
■ 登場人物
Aサーバのaさん
Bサーバのbさん
■ 流れ
aさんがbさんをブロックしました。
この時、Aサーバには、aさんがbさんをブロックしているという情報が記録されます。
また、AサーバからBサーバへ、aさんがbさんをブロックしたという情報が伝えられます。(Blockアクティビティ)
Bサーバはこれを受領すると、bさんはaさんにブロックされている(被ブロック)という情報を記録します。
■ 詳細
ブロックによって、aさんからbさんへのフォロー・フォローリクエストは解除されます。bさんからaさんへのフォロー・フォローリクエストも解除されます。
ただし、これもブロック同様、Aサーバでは解除された状態になっているにも関わらず、Bサーバでは解除されていない、という状態不一致の不具合が発生する可能性もあります。
aさんは、bさんをブロックしたことを所属するAサーバが認識しているので、bさんのプロフィールをみると、ブロック中であることが表示されます。
bさんは、aさんのプロフィールをBサーバ上でみると、フォローボタンが押せなくなっているので、状態を確かめることができます。
(つづく)
@muku_dori_ @nosutaruthedoo あと覚えておいてほしい点として、サーバーまるごとのブロックは、個別のブロックとは動作が全く異なるということがあります。
サーバまるごとブロックできるのは強力なのですが、Aサーバ上でBサーバの全ユーザーをみえないようにすることができる一方で、Bサーバ側にその個別のブロック情報が送られないので、Bサーバ側では被ブロックとして扱われません。
フォロー関係全解除になるので、投稿が相手に伝わる機会は激減するのですが、第三者のサーバ経由でブーストなどで伝わることがあり、この場合は投稿はみえます。
また、被ブロック状態になっていないので、アカウントは普通にみえるし、投稿も過去の分は引き続きみえています。フォローボタンも押せます。……押しても効果はありませんが。
@noellabo @nosutaruthedoo
ていねいにご教示いただき、ありがとうございます!! よくわかりました。
@noellabo @muku_dori_ 疑問点が解決しました…!お手間をかけてただいてありがとうございます。むくどりさんの質問、のえるさんの詳しいご解説改めて助かりました。
@muku_dori_ @nosutaruthedoo ただし、Bサーバが正しく被ブロックを処理できている場合に限ります。何らかの理由で被ブロックに気付いていない場合、過去の投稿もみえるし、フォローボタンも押せてしまいます。
BサーバがMastodonであればこの通りの動作をしますが、他のActivityPubソフトウェアでは、被ブロックを扱わないものがあります。互換性がない場合です。管理者が挙動を設定するような実装はなかったと思いますが、理屈上では可能です。
AサーバからBサーバへのBlockアクティビティを伝え損なう場合があります。Bサーバが長期間落ちていたとか、BサーバとAサーバの通信がうまくいっていないケースです。また、サーバ同士のブロックにより伝わらないこともあります。
この場合、Aサーバ側はブロックしているのに、Bサーバ側がブロックしていないと認識する問題が発生します。