要約:
このテキストは、Nostrクライアントであるgossipのスパムフィルタリング機能について説明しています。開発者たちは、スパムフィルタリングはリレーやDVMで行うべきだと考えていますが、現状ではクライアント側でも対策が必要です。gossipでは、Rhaiというスクリプト言語を使用してスパムフィルタリングを行う方法が紹介されています。
ステップバイステップ解説:
1.スパムフィルタリングの戦略:
・信頼のウェブ: フォローしている人とその人がフォローしている人からのイベントのみを受け入れる
・信頼できるリレー: スパムフィルタリングが適切に行われているリレーからのすべての投稿を許可する
・新しい公開鍵の拒否: 以前に見たことがある人からのイベントのみを受け入れる
・パターンマッチング: 既知のスパムフレーズや単語をスキャンしてブロックする
・外部システムとの連携: NIP-05などの外部アイデンティティとの紐付けを要求する
・作業証明: 最小限の作業証明を要求する
2.filter.rhaiファイル:
・gossipディレクトリに配置する必要があるRhai言語のスクリプトファイル
・入力イベントをフィルタリングし、表示するイベントを制御する
・filter関数を定義し、DENY、ALLOW、MUTEのいずれかを返す必要がある
3.スクリプトの機能:
・グローバル変数(caller, content, id, kind, muted, name, nip05valid, pow, pubkey, seconds_known, spamsafe)を使用してイベントの情報にアクセス
・これらの変数を使用して、イベントを許可するか拒否するかを決定する
4.サンプルスクリプトの解説:
・グローバルフィードではスパムを表示
・ReplyGuyやReplyGalを含む名前をブロック
・既知のDMスパムをブロック
・新しい公開鍵からのイベントを拒否(ただし、高いPoWやNIP-05が有効な場合は例外)
・攻撃的な内容を含むイベントの投稿者をミュート
・ミュートされた人からのイベントを拒否
・十分な作業証明(PoW)があれば許可
・NIP-05が有効であれば許可
・スパムセーフなリレーからのイベントを許可
・上記の条件に当てはまらないイベントを拒否
このスクリプトを使用することで、gossipユーザーは自分のニーズに合わせてスパムフィルタリングをカスタマイズできます。将来的には、リレーやDVMレベルでのスパムフィルタリングが実装されることが期待されていますが、それまではこのようなクライアントサイドの対策が有効です。