What's the best way to filter bots out of the global feed? I don't know about you, but I want to see what people are talking not the latest Bitcoin price.

Reply to this note

Please Login to reply.

Discussion

Something like what primal has for top tweets of the day or trending tags page would be better than a global feed imo

But top tweets are not Global. It's not about trending topics, it's about real, diverse opinions.

I found those top tweets to have real, diverse opinions. Much more so than current global

#notes, old habits and all that 😔

Much more fun than current global? Yes. But not even close to the global we had before.

Understood, offering a different way to think about global or content/people discovery. Enjoying it a lot on primal

Mute.

I just start blocking. But then every update I have to restart my blocking spree.. blocking has cleaned up my feed. But I constantly have to block lol

Mute words

Yeah, I remember there was a discussion On What to Do about Spam sometime last week, and the sentiment was that mute was unsustainable.

I’ve been turning that over in my head since then and I think it’s the only option I trust.

It would be cool if the relay or the client could filter out actual spam, but I distrust them to do so responsibly in aggregate. It’s early and (I think) this space is populated with good-faith actors, but I don’t want to cede the filtering responsibility.

Muting words puts the user in control and that’s what I like. Of course, you could still filter some spam on top of that.

As a user I want the ability to define lists that can work across different clients.

With these lists I want the ability to do any of the following...

- view only events from pubkeys in the list

- exclude events from pubkeys in the list

I want to be able to add a pubkey to multiple lists (e.g. a list of Developers, and a list of Saxophone players)

I may also have value in sharing a list or using another person's list

The question is how. Phone UIs are terrible for these types of detailed curation & management.

On the context menu of the note,

Add Author to List

Display popup of existing list names and allow defining a new list.

One place to display lists is the top bar (where New Threads, Conversations is), horizontal scrolling to access/view the lists. Short press to view. Long press to edit members of list, and options for rename or delete.

When viewing a user profile, can add another tab denoting the lists they are on, with checkbox to add/remove.

Maybe the New Threads, Conversations and Global views need a menu choice to affect the view to toggle a list (for filter exclusive of or inclusive). But yeah, UI can get messy, and want to avoid many levels deep to effect a change.

Filter.nostr.wine and only use this relay in global

This with a block here or there gets global feed pretty decent.

Sure, but also super biased :(

Zap filters ⚡

- only show posts from accounts with 100+ zaps

- only show posts with total zaps on post larger than 100-10k (user chooses)

- only show posts with zaps (any amount) received from 1-10 or more accounts (user chooses the zap event count requirement)

95% of accounts on Nostr don't have zap setup. :(

How many of those accounts are real people?

Adding zap filters would improve the experience for the people who engage with the platform in its full function, without damaging the existing experience and functionality of the app for the people who don't.

Many actually. I try to zap as many random people I can.. most fail.

nostr:npub15dqlghlewk84wz3pkqqvzl2w2w36f97g89ljds8x6c094nlu02vqjllm5m was suggesting that orange checkmark idea for social media back then. In his idea you would put a certain amount of sats to get a checkmark that you could lose (including the sats) for spamming etc. It then could be filtered to only see orange checked people. Also for dms etc.

I think we do have something better with zaps now. Even if not everyone has it, there could be a tab for people who zapped a certain amount or a certain top amount (not too high but higher than what zapper bot would zap), which would make chance higher that they are actual humans. It might incentive more people to participate in v4v zapping, too in order to be part of the "zap verified" global feed.

I think it's best to let folks figure out what they like. I treat global like a fishing expedition. Might find something nice, probably won't. Different people will find different things they like on global. Global is the wild west and will remain so even if you attempt to filter some of it out.

I don't think that's the apps job. I don't want things filtered.

Agree. But almost every app already does something to it. We are one of the few that show it raw and it's now the least used feature of the app :(

Why have something no one uses?

Could make it a sidebar feature rather than main tab bar to use prime real estate for more used features.

Would be nice to filter all of that too 🙌

Mute words?

nostr:npub19mun7qwdyjf7qs3456u8kyxncjn5u2n7klpu4utgy68k4aenzj6synjnft's more-speech client uses a web of trust model that is probably the ultimate solution to unwanted messaging of all kinds. Looking forward to when my home feed can be those I follow plus another level or two of this web.

Web of trust is by definition not global. The whole point of global is to see people far away from your opinions / relationships. All mixed in a blob of weird content.

Agreed. Best to let it be weird and not try to filter it I think.

My turn off is just the huge amount of bots writing they useless stuff in kind 1 events every second or minute.

Bots can be nice! I found the android bot recently. I have no idea how clients receive notes from relays, but if the issue is frequency of posts, is it possible to allow users to chose to lump posts by user and time buckets? Say expose a toggle in settings where the global feed would only show the latest post in a X minutes interval of an account if said account posted more than once in a X minutes interval.

Just my humble opinion, but, bit more centralized way might look work. For example, each client receives global feed only from paid relays as much as possible.

As you have already done in Amethyst.

The bot and spam runner will lose their benefit if everyone does this so because only just a few people will see the posts from bots if it happens.

Eventually, the number of spams and bots will decrease.

People who want to post globally may need to pay a bit for it, but doesn't sound unfair to me. Now, this cost is paid by people running free relays after all.

My mistake. You have not limited receiving feed at all. Amethyst allows users to make a choice to do so.

It’s not gonna deal with real spam… but I think bots should have a way to declare they are a bot… I also think their pubkeys should be / not @ and this spec could also provide a place for them to include prompt assistance… make bots great so people want to disclose, and those who do won’t mind being filtered sometimes. Everything else is straight spam.

Allow us to use muted words. I would honestly mute the word Bitcoin. I'm a fan and I definitely get it but I just don't need to hear about it endlessly all day.

Why use a global feed at all? Just have a “friends of friends” feed. or even “friends of friends of friends”

Nah.. this is just brings bias and reinforces one's own ideologies.

yeah well what you’re doing is called social engineering. your own biases are evident in your software design.

good luck trying to remove the concept of levels of trust and friendship from humanity.

I am not trying to remove it. We have 3 pages of web of trust (home, chats and DMS). Global is supposed to play the opposite and bring some fresh ideas to each user.

What u think about try something like trending? Its sucess its not for no reason.

I find trending quite boring. It only reinforces the biggest accounts.

Of course its manipulated, but u can try to do it right in here. Dont you? Im speaking about the idea, not the bad pratices.

HODLers don't talk about the price of Bitcoin.

I block. it's pretty fast with Amethyst. if the bot is particularly egregious, I report for spam.

I don't know how nostr and clients are going to deal with large amounts of low grade content without doing it programmatically, without algorithm. I think this is by far the biggest hurdle nostr faces in order to be able to go mainstream.

Just gotta mute em? Doesn't seem like a huge amount to mute, like 5-10?

nostr.wine pretty good. Oh also I turn off free relays for global. If you need a client with good relay control try nostros.

I had the same, but its quite a biased view of the world. :(

Filters out spam tho. Hey you could run a hash cash relay aka proof of work relay. Need a hash of a certain difficulty to post.

Or you could run a relay and moderate it. Just spitting ideas here

Some type of sampling might be interesting, where the chance a message gets displayed in global is inversely related to how much the pubkey posted recently. Will naturally tend to quiet the noisiest bots without blocking completely.

Maybe there could be services out there watching for everything and tagging posts as bots or humans?

My suggestion:

Create a filter that user can edit, in this filter user can add:

1. Words (in notes or user name)

2. Hash tags

If you can ... Make filter and block list process before display in "viewer area", sometimes app crash because it's going hide all user posts you have blocked, but the list scroll down showing the "hide" action.

This is a simple blocklist, but I think that it's a big helper. Hope you enjoyed the suggest. Thanks (sorry for my English).

Thanks! No ln address?

What is "in address" ? (sorry English)

It's a lightning address to receive zaps (Bitcoin). You can get one in getalby.com

Finally I got one, rsrs. Thanks, I learn more things with this "mini journey to make a wallet" .

Add the address into your profile :)

OK rsrsrs

I think filtering notes should be a two tier system. At the relays for broad filtering rules, and in the client for refinement filtering. #nostrplebs #nostr

By not having Global Feed

Shared specialized blocklists.

In this instance, have a blocklist to specifically block spam from bots which people can subscribe to.

People can fork and adjust the list if they disagree with who is a bot or not.

Can also randomly present people with posts from the blocklist from time to time so they can affirm if the blocklist is still doing what it's meant to.

I believe that there is no perfect solution to reduce bots. Whatever a filter defines as undesirable, bots can be tweaked to avoid triggering those characteristics.

However, if we assume that price or 'trading advice' bots are deployed to impact the market or in some way generate revenue, then filters can be designed to reduce that type of activity. I think that's a category specific enough to be separated linguistically from normal conversations. How bots will be tweaked to respond to such a filter remains to be seen.

Besides muting individual accounts/a pubkey list, I don’t have an obvious client side solution. We plan to address this with note classification + filter “focus” modes with user configure global views. Not quite there yet but soon!

You can add ?global=all to filter.nostr.wine today and break out of the follows+follows network, but you’re right - it’s filled with bots. My dream is global all -bots. Coming soon™️…

Maybe we need bot tagging services. Anyone can help tag them as bots or humans.

And I’m sure it was mentioned, I know I’ve said it a bunch. Would be nice if there was a protocol way for the “good actor” bots to self label as bots too.

I think it’s something that needs to be addressed from both sides - publisher and client filtering. Perhaps a kind 0 flag? Unsure about best bottom up approaches.

I think a “bot” is perhaps too specific phrasing. Is a bot something that posts my twitter posts to Nostr as well (extremely hypothetical.. I don’t dead bird). Not really.. but it is automated or assisted? But does that matter.. not really, it’s mimicking a human. Does a bot reply to DMs? Etc.

Verification events read like a bot, but are ideally once per account/service combo. This is a ‘service-like’ event/message example - in contrast to a dedicated bot/machine account.

My interest in identifying machine posts is to remove them from certain summarisation data - like hashtags or words or url frequencies. I want to represent human contributions instead of the most frequent repetitive bot terms.

I think we need a better name too. Bots, automated, machine… maybe hybrid accounts exist too… naming is hard.

Maybe “service” accounts? Maybe there are event a few standard types that could be chosen from?

Why not a new NIP that requires some POW to generate a valid npub/nsec pair? Anything that doesn’t put in enough work auto seen by clients as spam. Just need a loading bar on account creation as phone does some computing, like trying to get a custom looking npub but actually useful. #[5]​ does this for contacting him via website form. Has to upgrade difficulty occasionally but works I think

Can start computing right from first app screen while user configures account, agrees to terms, writes profile bio/name etc, chooses UI theme etc

A significant issue I realised recently with POW pubkeys, is when you use HD identities that derive from a seed key - even if your initial seed or first derived key has high POW, any children using incremental counters won’t. It will be a random POW.. most likely 0.

This means POW for HD identities is likely incompatible with many of the simpler key management and rotation approaches.

The issue in this case is the target problem isn’t directly flood spam. It’s largely repetitive or generic generated events that aren’t from a direct human source. It’s like metadata events or piggy back events that don’t provide value to most users.

Can relays not just require some POW attached to notes to accept them? As long as there is a real cost somewhere along the line, spam is disincentivized

POW has a fair chunk of pushback - however it does offer unique properties. The general preferred approach is pay-to-relay.

It’s a good point that perhaps generic messages shouldn’t be posted to dedicated public human consumption relays to begin with - but again, you can’t really control this. However, pay-to-relay could assist - but people will just pay for their bot pubkeys to relay, as it’s cheap per event in general.

A counter point is, just like advertising and tagging, as soon as it’s used for discovery, people will do whatever they get to boost/maximise their discovery for the lowest cost. Bot dedicated relays for example likely wouldn’t get as much attention or engagement.

I see kind 1 as a forever dumping ground of random events, as it will be the most supported kind by apps and get the most eyes. Our engineering challenge is to best manage that.

https://github.com/blakejakopovic/nostr_pow_service

What's wrong with #nostr today.

Is it working with you ok?

We should encourage people to build interactive bots that only respond to specific user requests, and ideally per DMs, instead of text notes.

I'm working on something like that. It's still under development, and I hope to have a working alpha version soon-ish.

Having a set of trending/popular hashtags (like #introductions, #artonnostr) below search on global only for brand new users (ie.those having no follows/ no notes) may help. Particularly because on Amethyst, since the Home Feed will be blank, their first view of notes will be on global & the hashtags may make the truly wild beast of global a bit more tame.

For others, don't know if filtering global is needed (I don't mind most of the bots & blocking frequent posters like DM-bot works). If someone has figured out relay settings/paid relays, they've made a conscious choice about their feed and given that there are 500+ relays now, it's not possible to not miss out on some stuff.

Interesting idea.