originがAサーバの投稿を、Bサーバの人がリノートして、それを見てCサーバの人がリノートした場合、
1. Cサーバ→Bサーバの通信は発生する?
2. Cサーバ→Aサーバの通信は発生する?
3. Bサーバ→Aサーバの通信は発生する?
4. AサーバがCサーバをブロックしていた場合、AサーバはCサーバの人がリノートしたことを知ることができる?

@kussy_tessy 署名付きリクエスト(Fetch)しか受け付けない設定のサーバと、自由にFetchできるサーバで異なります。

BサーバからAnnounceアクティビティがフォロワーおよび対象の投稿のAサーバに配送される

Aサーバは、自分のサーバに対象投稿があるので、Announceアクティビティをリノートやブーストとして解釈し、自分のサーバの投稿主にリノート・ブーストされたよって通知します。

Cサーバにフォロワーがいた場合、もともと対象の投稿を受け取っていれば、Announceアクティビティをリノートやブーストとして解釈するだけです。

もともと対象の投稿を受け取っていなかった場合、Announceアクティビティで指し示されている対象投稿をFetchする処理が入り、これに成功すればリノートやブーストとして解釈されます。

Fetchの際、Mastodonでは、どのアクターがリクエストしているのか署名します。

AサーバがCサーバをブロックしている場合、署名つきのリクエストであればブロック対象サーバがリクエストしてきていることを知ることができるので、これを拒否できますが、実際にその判定を行うかどうかはサーバの設定によります。

MastodonではAuthorized Fetchです。

@kussy_tessy ほんで、署名を要求されていない場合はリノート・ブーストできます。

このとき、Cサーバから対象の投稿のサーバであるAサーバへAnnounceアクティビティが飛びます。

AサーバはCサーバをブロックしていれば、これを受け付けずに捨てるハズです。そうすると、Aサーバの対象の投稿主は、リノート・ブーストの通知を受け取ることができない、ということになるかと思います。

ブロックが期待通りの効果を発揮するためには、Aサーバが署名付きリクエストを必須としてCサーバからのリクエストを拒否する必要があります。

しかし、署名付きを必須とすると、署名付きリクエストを行わないサーバから何もFetchできなくなったり、連合リレーに参加できなくなるので、通常は必須に設定されていません。

フォロー

@kussy_tessy Misskeyがリクエスト時に署名する設定はこれ(デフォルト有効)
github.com/misskey-dev/misskey

リクエスト・Fetchされた側が署名をみてるかどうかはわかっていないので、詳しい人にきいてみて。

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。