How many hours do you spend in #nostr ? ๐
https://snowcait.github.io/nostr-hours/
Interesting tool created by nostr:npub1s02jksmr6tgmcksf3hnmue7pyzlm0sxwarh7lk8tdeprw2hjg6ysp7fxtw

You can probably try using nfrelay.app . It has already spam filter implemented to handle RplyFamily and Impersonator. Let me know if you have still those spam while using the relay ๐
Additionally you can also add WoT relays to help such as:
- wot.utxo.one
- nostrelites.org
- wot.nostr.party
- wot.siamstr.com
- nostr-relay.app
Just suggestion, maybe you can add policy rule like this
https://github.com/atrifat/strfry-policies/pull/1
Policy that request external API that you can freely implement later to process the event. I have done this nfrelay.app to filter RplyFamily and impersonator by reading metadata profile.
Simple Policy API server example can be made like this:
```
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const PORT = 3000;
// Middleware to parse JSON bodies
app.use(bodyParser.json());
// POST route for /spamfilter
app.post('/spamfilter', (req, res) => {
const { input } = req.body; // Destructure input from the request body
const content = input.content; // Assuming content is a property of input
// Simple spam detection logic (for demonstration purposes)
const spamKeywords = ['spam', 'buy now', 'click here'];
const isSpam = spamKeywords.some(keyword => content.includes(keyword));
// Respond with { accept: true } or { accept: false }
if (isSpam) {
return res.status(200).json({ accept: false });
}
res.status(200).json({ accept: true });
});
// Start the server
app.listen(PORT, () => {
console.log(`Server is running on http://localhost:${PORT}`);
});
```
This Reply spam seems little bit different than regular RplyFamily. It was targeted to more certain users (popular users).
I think we need more "Smart clients and Smart relays" here to solve the issue. Clients can show it clearly when the person have invalid NIP-05 (impersonators) while relays might probably filter them out.
PSA:
Maintenance is partially completed. Relay can be used normally again. All data older than 3 days ago is currently unavailable and will be imported slowly into the relay.
PSA:
nfrelay.app backend relay will be migrated from strfry 0.9.6 into latest version. There will be some downtime or incomplete data during migration. Maintenance will be started from September 16 01:00 UTC. Thank you.
#NostrFilterRelay
If i'm not mistaken, this is bullish pattern known for traders while waiting bounce on support line ๐ /s
Was the speaker nostr:npub1qd6zcgzukmydscp3eyauf2dn6xzgfsevsetrls8zrzgs5t0e4fws7re0mj ? ๐
Oh, you can probably try it as it was read-only aggregator relay that can help to access overseas relay
Welcome. Yes, it is read-only aggregator relay for now. I will prepare it later so it can also accept write directly and handle spam better. Let me know if you have problems or other questions ๐
1. It will be used by Amethyst to fetch event but will not be used to publish event into it. "Read" relay or Public inbox relay in amethyst relay settings. You can set it in "Public inbox relay" or you can set nfrelay.app in "General relay" setting like this:

It should have same effect.
2. nfrelay.app will fetch other posts/notes from other relay automatically in my server. It is ok if you dont set nfrelay.app as "write" relay. nfrelay.app is a read-only relay actually.
ใ่ถ ็ฐกๅใชใชใใฌใคๅฏพ็ญใ
Inbox ใชใฌใผใซ nostr:nprofile1qqszkelyszmln8fgx45y4rmjwmvxaklguvvw54w0wlx064vutuj0v3gpzamhxue69uhhgetnwshxuenjv4kxz7fwv9c8qtcpr4mhxue69uhkummnw3ezumt4w35ku7thv9kxcet59e3k7mf00cluxf ใฎ wss://nfrelay.app ใฎใฟใ่จญๅฎ
ใใใใ
9 ๅฒๅใใใง้ง้ใงใใใโก
Yes, you can set it as "Read" relay Kohei-san. To set "Write" relay, you can use any other major relays and notes/posts will be aggregated into nfrelay.app .
Do you aggregate events from nos.lol to relay.nostr.wirednet.jp, Kirino-san?
If you need relay to aggregate global feed then you can try nfrelay.app . It aggregates events from major relays. Also, I have already filtered spam of RplyFamily.
Amethyst latest version also do good job with Filtering profile metadata based on "hidden word" that were set. Other clients like Nostur implement WoT.
Filter them by their metadata profile. This was implemented in nfrelay.app using strfry policy plugin.
Thank you. It is aggregator relay that has various filter features. ๐
You can probably check more in Usage docs in if you want to try other features https://github.com/atrifat/nostr-filter-relay
Kohei-san, if you want to check global feed then you can probably try using nfrelay.app . I have already filtered spam like RplyGuy and his family ๐
You are right, it is weird. Just checked the last event was 7 hours ago ๐
nak req -l 1 relay.damus.io
Only got this one
{"kind":31234,"id":"19ed50446830fefa0757b43eb43ca46839e9e4cea0707f8324216d7f405eeee7","pubkey":"6c0e9016b9c1efe7edef87e505e2a1e03db1fbbcfdc3ed6b4f8aaa4b540ad98f","created_at":1726275953, ... }
/cc nostr:npub1xtscya34g58tk0z605fvr788k263gsu6cy9x0mhnm87echrgufzsevkk5s
Traffic statistic becomes normal again

Thank you Cody, done ๐ซ
This is for small project that only need small bandwidth for now. I haven't prepare dedicated ISP with public IP yet, so it will be connected to one of my VPS through wireguard later. VPS will route traffic into this PC.
Oh, do you mean this one?
It is my bot using old event format (kind:9978). It seems there are other people who blast those event. I only publish in nfrelay.app ๐
The pubkey of nostr-filter-relay bot is 981b00cd897786f2a40578c337984d8f0912397c3c6dfc6ffebd4d896cf93f4f .
I think gitworkshop can filter only kind 1, kind 7, and git events to show in the UI.
nostr:npub12m2t8433p7kmw22t0uzp426xn30lezv3kxcmxvvcrwt2y3hk4ejsvre68j might be the popular one . The report is clearly visible due to kind 1984 usage ๐
Also, I haven't change my inbox relay yet. The issue seems affecting on UI side
I think it works. This is event id of the last job response
3a0053d8a13fefe6d99fb217153c54d05dad44083ea0b59693d2c2ac6cf77c22

But, It seems it was stuck in the Amethyst UI. Do i need to update my Amethyst? Currently using v0.89.10
Oh, Did you implement custom search on local cached notes? I remember that you used strfry which have no support for NIP-50?
Btw, i tried 2 times and it seems always stuck in here despite paying succesfully ๐

#NostrFilterRelay v0.4.0 update
"Compatibility bring various apps grow together" ๐ฑ
This release bring important change with NIP-32 compatibility (kind: 1985). Starting from this release, legacy custom event (kind: 9978) that were used for classification data in nostr-filter-relay has been deprecated. Other #nostr apps can freely uses NIP-32 label.
Legacy support is still available by setting nostr-filter-relay with environment variable as follows:
ENABLE_NIP_32_CLASSIFICATION_EVENT=false
ENABLE_LEGACY_CLASSIFICATION_EVENT=true
USE_NIP_32_EVENT_FORMAT=false
Explanation of NIP-32 structure were documented in NIP32-COMPATIBILITY.md . Thank you nostr:npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn for valuable discussion ๐.
Release note:
https://github.com/atrifat/nostr-filter-relay/releases/tag/v0.4.0
PSA:
Demo relay wss://nfrelay.app will be updated. If you are using old event format (kind: 9978) from the relay, please prepare to migrate and use NIP-32 event (kind: 1985). After 1 week, nfrelay.app will publish NIP-32 event and stop publishing old event format. Thank you.
/cc nostr:npub1s6z7hmmx2vud66f3utxd70qem8cwtggx0jgc7gh8pqwz2k8cltuqrdwk4c in the context of language filtered content, you can try out this relay (and use a client which only will show the content from this relay ๐ง)
Yes, nostr client devs can also use directly classification events (NIP-32 kind: 1985) and filter kind: 1
Example:
nak req -k 1985 -t L=app.nfrelay.language wss://nfrelay.app
Oh, let me know if you have found the model. I want to make similar API server for those case later



