Avatar
Rif'at Ahdi R
2b67e480b7f99d2835684a8f7276d86edbe8e318ea55cf77ccfd559c5f24f645
Special family-friendly relay with filter settings (Language, Safe For Work, Hate speech, Sentiment, Topic, etc) for Global Feed: https://github.com/atrifat/nostr-filter-relay/blob/main/USAGE.md wss://nfrelay.app Indonesian. Learning and interested in PHP, JS, Go, DevOps, Android, and Machine Learning

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:

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

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.

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.

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

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?

https://gitworkshop.dev/r/naddr1qq9kw6t5wahhy6mndphhqqg5waehxw309aex2mrp0yhxgctdw4eju6t0qgs2qzx779ted7af5rt04vzw3l2hpzfgtk0a2pw6t2plaz4d2734vngrqsqqqaue3nfxys/issues/note1s2j6qpumyq4p3udmkh2t8uymgpeazgwrczvjqdhrpa49zx4fpwqqlc6awf

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.

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 ๐Ÿ˜…

Replying to Avatar Sebastix

/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