LeoWandersleb on Nostr: I'm exploring what to use as a good signal for spam in the context of a relay and I'm ...
I'm exploring what to use as a good signal for spam in the context of a relay and I'm leaning towards counting follows vs. mutes. Somebody followed by 20 of my follows but muted by 6 maybe merits an explicit mute from me to be treated as spam? Somebody followed by nobody but muted by 2 ... probably is spam?
I'm implementing
I want to run a relay financed by a tiny percentage of its users and strongly believe
in the following being a way to align incentives for all clients and relay operators:
For this bounty, the minimum requirement for the resulting relay is:
- relay is as efficient or better than strfry at supported nips, synchronization between instances and handling concurrent connections
- nip42 support
- all read and write operations are metered per connected pubkey: milliseconds spent on queries, query count, events sent, event kBs sent, etc. (If Alice pushes Bob’s events, it gets tallied to her pubkey - the one authenticated via nip42)
- allow managing group of primary (TIER 0 or T0) users via API
- secondary users are those followed by T0 users etc.
- define limits depending on follows distance to primary users, using five tiers: 0 = primary users, 1 = follows, 2 = follows of follows, 3 = follows of follows of follows, inf = all the other pubkeys
- allow configuring hourly, daily and monthly limits per tier and metered aspect.
This bounty was created with the goal of actually running a relay with this feature and will not be awarded for a proof of concept that is not a fully functional and performant relay. Strfry is “good enough”. If you want to implement the proposed feature in a different relay, please reach out to discuss first.
This bounty was offered in other places before:
and it will soon be available as a relay, without nip42 as I think it's not well supported by clients yet.
Vitor Pamplona (npub1gcx…nj5z) Deleted Account (npub1t0n…jgqv) Published at
2023-06-05 12:39:40Event JSON
{
"id": "a8bca8dbb54f12145175ecccd01dd50272955ca10aa8d2c1d454d1642a0f2aa2",
"pubkey": "46fcbe3065eaf1ae7811465924e48923363ff3f526bd6f73d7c184b16bd8ce4d",
"created_at": 1685968780,
"kind": 1,
"tags": [
[
"p",
"460c25e682fda7832b52d1f22d3d22b3176d972f60dcdc3212ed8c92ef85065c"
],
[
"p",
"5be6446aa8a31c11b3b453bf8dafc9b346ff328d1fa11a0fa02a1e6461f6a9b1"
]
],
"content": "I'm exploring what to use as a good signal for spam in the context of a relay and I'm leaning towards counting follows vs. mutes. Somebody followed by 20 of my follows but muted by 6 maybe merits an explicit mute from me to be treated as spam? Somebody followed by nobody but muted by 2 ... probably is spam?\n\nI'm implementing nostr:naddr1qq9rzd3h8y6nqwf5xyuqygzxljlrqe027xh8sy2xtyjwfzfrxcll8afxh4hh847psjckhkxwf5psgqqqw4rsty50fx and it will soon be available as a relay, without nip42 as I think it's not well supported by clients yet.\n\nnostr:npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z nostr:npub1t0nyg64g5vwprva52wlcmt7fkdr07v5dr7s35raq9g0xgc0k4xcsedjgqv ",
"sig": "d8e68effb4126db0c749de3ebfeb0012bbd1cdaee780267bc3239d1aeb65ba872319ca81b5d536404ee734b4d732a6cbad3f4fe9644fc969f200599ac4e23c8e"
}