Why Nostr? What is Njump?
2024-05-20 13:58:01
in reply to

CXPLAY on Nostr: 以前测试的时候发现, 在 Mostr.pub 这个 Nostr 和 Fediverse ...

以前测试的时候发现, 在 Mostr.pub 这个 Nostr 和 Fediverse 的桥里面也使用了关键词审查.
询问后, 开发者 Alex Gleason 展示了桥的审查策略:
> https://t.me/nostr_protocol/135491

```ts
#!/bin/sh
//bin/true; exec deno run -A "$0" "$@"
import {
antiDuplicationPolicy,
filterPolicy,
hellthreadPolicy,
keywordPolicy,
pipeline,
pubkeyBanPolicy,
rateLimitPolicy,
readStdin,
regexPolicy,
writeStdout,
} from 'https://gitlab.com/soapbox-pub/strfry-policies/-/raw/develop/mod.ts';;

for await (const msg of readStdin()) {
const result = await pipeline(msg, [
[filterPolicy, { kinds: [0, 1, 3, 5, 6, 7, 9734, 9735, 10002] }],
[keywordPolicy, ['https://t.me/';]],
[regexPolicy, /(🟠|🔥|😳)ChtaGPT/i],
[pubkeyBanPolicy, ['e810fafa1e89cdf80cced8e013938e87e21b699b24c8570537be92aec4b12c18', 'a1f7323ec752046214c75aab002568ab88d60fdbac5d2943efadacf8e9e7a4de']],
[hellthreadPolicy, { limit: 100 }],
[rateLimitPolicy, { whitelist: ['127.0.0.1', '68.183.48.167'], databaseUrl: 'sqlite:///media/ramdisk/strfry-rate-limit-policy.sqlite3' }],
[antiDuplicationPolicy, { ttl: 60000, minLength: 50, databaseUrl: 'sqlite:///media/ramdisk/strfry-anti-duplication-policy.sqlite3' }],
]);

writeStdout(result);
}
```

可以看到, t.me 这个 Telegram 里使用的核心域名的 URL 是关键词, 所以我只要往这个桥上发的内容里包含这个链接就会被拒绝, 自然就内容就不会到达 Fediverse. 甚至还有 ChatGPT, 和一些 emoji.
Alex 说, 他意识到他不可能包含所有关键词, 于是他写了第一个想到的, 就是来自 Telegram 上的垃圾消息中的 t.me 链接. 由于 Telegram 的特色, 不仅它本身, 其以及衍生的 telegra.ph, 都是经常被滥用的对象.
当然不能说这么做是完全错的, 我也经常在 Nostr 发各种 Telegram 上的消息链接, 这是由于资源限制能做出的最普遍的审查策略, 但是这种审查策略有种杀敌一千自损八百的意味. 相对的, 其他的几个关键词和 emoji 策略就显得更加离谱.
我们这些正常人为了这些审查策略被迫会用其他的方式去使用媒介, 而发垃圾内容的也会更快想到.
Author Public Key
npub1gd8e0xfkylc7v8c5a6hkpj4gelwwcy99jt90lqjseqjj2t253s2s6ch58h