現状のリレーの状況です。
--
まず全体として、通常の WebSocket 利用は普通に通っています。nginx の直近 2000 行では 101 が 1555 件で主流です。UA もかなり多様です。
- Amethyst
- Wisp
- damus
- bitchat
- fiatjaf.com/nostr
- go-nostr
- node
- ブラウザ系
- okhttp/4.9.2
一方で、問題のある傾向は大きく 4 系統です。
1. Cloudflare Worker 系
- 主犯は 2a06::
- cf-worker: xxxxxxx.pages.dev
- too many concurrent REQs を繰り返し、3回で Ban、解除後に再発
- activeSubscriptionCountForIP が 49 まで膨らむ
2. ephemeral / blocked kind の書き込み
- 149.xxx.xxx.xxx が代表的
- blocked kind: 20001 や 22668
- それ以外の ephemeral kind は静かに破棄
3. 重い kind 1984 の REQ
- 185.xxx.xxx.xxx
- 192.xxx.xxx.xxx
- などが processing cost block に到達
- authors と #p を大量に組み合わせた問い合わせが重い
4. nginx レイヤの 429
- まだ完全には消えていない
- 直近では
- 39.xxx.xxx.xxx → 181
- 14.xxx.xxx.xxx → 17
- 2a06:: → 12
- ただし以前よりはかなり偏在化していて、一般クライアント全体が踏んでいる感じではない
通常利用寄りの傾向も見えます。
- Amethyst, damus, bitchat, Wisp は普通に 101
- bitchat は継続的に来ているが、今のところ block 主体ではない
- okhttp/4.9.2 も通っている例があり、一律悪性ではない
要するに今の構図は、
- 大多数の通常クライアントは通っている
- 問題は少数の noisy source に集中
- 特に cf-worker 系、多重 REQ、重い 1984 検索、ephemeral/blocked kind 書き込みが主な負荷源です
なので、現状の nostr-filter はかなり目的に合っています。次に手を入れるなら優先順位は
1. cf-worker を接続時点で落とすか
2. kind 1984 重負荷 REQ をさらに絞るか
のどちらかです。
きりの
imksoo@nostr.wirednet.jp
npub1vd9a...wen9
きりのです。
Nostr relay operator.
My Nostr relay service (for global):
wss://relay.nostr.wirednet.jp
My Nostr relay service (for Japan):
wss://relay-jp.nostr.wirednet.jp
Nostr Feeds (のぞき窓):
https://relay-jp.nostr.wirednet.jp
NostPic (Image uploader for Nostr)
https://nostpic.com/
Anonymously Chat with Nymchat
Ephemeral anonymous chat messaging over Nostr. Bridged with Bitchat geohash channels.
テスト的にokhttpを通してみるか。(Amethyst, FreeFromなどのAndroid系クライアントが軒並みBLOCKされてた)
AndroidでNostrクライアント作る人たち、ちゃんとユーザーエージェント名を出して。
Amethystを消して、FreeFrom入れてみたけどこいつももしかしてokhttp族か?
Android Nostr クライアント [検索]
クソクライアントの排除のために nostr-filter が機能的に充実していくw (OpenAI Codex CLIのおかげ)

GitHub
GitHub - imksoo/nostr-filter: `nostr-filter` is a Nostr relay server that filters messages based on regular expressions.
`nostr-filter` is a Nostr relay server that filters messages based on regular expressions. - imksoo/nostr-filter
大昔にビデオストリームをepheremeral eventsでストリーミングしてたのよりもタチが悪すぎる。ユーザー数が多いから。yu-za-suugaooikara.
思想的にリレー薩摩守するつもりのクライアントはさすがにUA付けてきたら狙い撃ちでブロックする。
Bitchatなら、堂々とちゃんとUAにbitchatって書けよ、って思う。
あと okhttp と bostr2 を名乗るエージェントは無期限でブロックです。
relay.nostr.wirednet.jp は ephemeral events (20000 <= kind < 30000) の書き込みを当面の間ブロックします。
bostr2とokhttpを処し始めてから、かなりリレーが安定稼働するようになったなー。2月ぐらいからものすごくネットワーク帯域を食い潰してやがったからな……。
As a Nostr relay operator, I need to be clear about something.
The compute, network bandwidth, and electricity required to run a relay are all finite. Relay operators do not have unlimited money, time, or resources to keep pouring into this.
If more and more clients — or things like Bitchat?? — simply free-ride on relays’ unpaid service while doing nothing but consuming excessive resources, I will not be able to continue operating my relay.
If that is the direction this is going, then it would be better for such usage to stay confined to free local LAN environments instead.
Moderation and restraint matter. Sending tens of gigabytes of traffic per day is not free.
kind 20000とkind 20001のREQもめちゃくちゃ重たい&複数並列してくる&ずっと連続して接続し続けてくる&Cloudflareの何かの偽装エッジから接続してくる、というたちの悪いユーザーが目立ちすぎたので一触即発banモードです。
kind 20000をREQしただけで10分間は廊下で立ってなさいモードにしてある
届いてないから見えてないね……
View quoted note →
ログを取らない無責任リレーする訳にもいかず。wakenimoikazu.
ただねぇ……20000と20001だけで一日に50GBもログが出てきたら処するしかないよねぇ。