Yes, time in which the relay responded with an event
This is interesting. Timestamp as in local timestamp when that post-EOSE event arrived? Aren't there discrepancies/timezone issues between client and event signing times?
Nostr devs: Wouldn't it be very useful for caching if relays sent their timestamp next to events? How are you calculating since in REQs otherwise? #asknostr
He wrote several good posts over the last days
what was that RSS feed to nostr tool?
DHH has a great post today, one section really caught my attention and is something I've been thinking a lot about recently.
"And that's what gets me. Everyone find it easy to nod in agreement with Jobs' ode to To The Crazy Ones¹. Everyone wants to believe that they'd support "the misfits, the rebels, the troublemakers". That they too would cheer for those who are "not fond of rules. And... have no respect for the status quo".
But they won't and they don't. Most people are either aggressively or passively conformist². They squirm when The Crazy Ones actually attempt to change the world. They don't see genius as often as they see transgressors. A failure to comply and comport. And they don't like it."
So GM Nostr. 🌞 Be crazy and non-conformist today.
1. https://basicappleguy.com/basicappleblog/heres-to-the-crazy-ones
GM man
Open source royalty and mad kings
https://world.hey.com/dhh/open-source-royalty-and-mad-kings-a8f79d16
The Automattic vs WP Engine shitshow is another example of why nostr will win
Must read
nostr:note1eleqqfhcmgcd57x7g7s37jse7d7srumep4fgujhxu6a56saq3hyspcfhge
Open source royalty and mad kings
https://world.hey.com/dhh/open-source-royalty-and-mad-kings-a8f79d16
Great read
nostr:npub149p5act9a5qm9p47elp8w8h3wpwn2d7s2xecw2ygnrxqp4wgsklq9g722q will love to read this
Yes. It's very cool. Just my opinion that DVM spec too contrived for a synchronous API with no payment. Maybe could have a simpler one for those cases
Amores forever! Just married nostr:npub155c00a6mvtuxquc83lgdsgcz2zxfyulvs3k3janw7s2p06uzqezqw6dfkh ♥️
10/10/2024




💜
Forgot to mention: Some of these events with a huge chunk of base64 encoded data. Puts the user in a weird spot
Yeah, this is the kind of user deception I don't want to see in nostr:npub10r8xl2njyepcw2zwv3a6dyufj4e4ajx86hz6v4ehu4gnpupxxp7stjt2p8.
When a user publishes something for public use:
1️⃣ It needs to be clear that he's publishing something 🤷♂️
2️⃣ It needs to be very obviously public
Again, this is why I prefer to look at the public actions users already do anyway: replies, zaps, public bookmarking, etc...
Agreed.
I know it's not malicious on the part of any dev, but I've encountered several nostr apps prompting for signing multiple events of mysterious kinds.
Including events in a non-interactive context like loading a website an being asked for a signature.
Sign (or prompt to) events only when absolutely necessary. Be explicit about what's not obvious. Maybe we need work on UI/UX design around prompts?
nostr:note1tm93m6cvr2xpnafeschzsp7sgxurqszm0jzxrgar757eeuzanu0sqgv98e
Could be. But the DVM spec is absurdly complex for something like a query
Yes, app lists are planned for zap.store
Looking for an open source document scanner, or card wallet for #Android?
Look no further... OSS has them both. So good to finally find an awesome open source alternative to Adobe Scan.
Seriously, check it out. It's kind of a big deal.
https://github.com/Akylas/OSS-DocumentScanner
#opensource #oss
Added to nostr:npub10r8xl2njyepcw2zwv3a6dyufj4e4ajx86hz6v4ehu4gnpupxxp7stjt2p8! Would be awesome if you could tag us when you discover cool apps
It would be a concern for relay developers, not relay operators, in the rare case they decide to switch the underlying DB tech which should happen rarely if ever.
Agreed on 1 and 2!
to zap.store too?
Negation is the first basic thing that comes to mind. "Piping" filters would be another one.
Agree this is nuanced, delicate and comes with tradeoffs. This isn't an ask, I am trying to open this conversation.
People can call it however they like, but most relay usage is clients treating them as databases (it's not data reconciliation). And thus nostr has a query language (most call it request filters).
More flexible in what sense? I never suggested using SQL. What I'm saying is no matter which tech backs your relay, it already has a more powerful query language. Let's find some common denominator perhaps, and improve the filters so they allow more efficient querying without compromising decentralization.
The issue here is how easy it would be to swap a backend if any service is captured or down. I appreciate that at least with a DVM there should be a spec of the complex querying
Not being able to execute more complex queries on relays tips the balance in favor of custom API servers.
Any service that values great UX (and no, we have awful UX on nostr so far) will end up choosing a custom server. This means users will lack the ability to manage servers like they do with relays, and therefore reduce user choice and decentralization.
Few.
Do you mean people who use databases for their apps are not aiming for real usage? Why not?
Interop through a common format is exactly what is at stake when you have a query language so primitive that each client is forced to create its own.
The REQ specification is a query language, no words can hide this fact.
What are you talking about? Nostr has a query mechanism
> final result spec (type, range, tags, etc) should be just one
Did I understand correctly - you want to include type, range, tags etc for each service into this NIP?
I can have a relay backed by a thousand servers, but that does not solve the issues of bandwidth and client-side processing
I think the main points that nostr:nprofile1qqsdulkdrc5hdf4dktl6taxmsxnasykghdnf32sqmnc7w6km2hhav3gppemhxue69uhkummn9ekx7mp0qywhwumn8ghj7mn0wd68ytfsxyhxymmvwshx7cnnv4e8vetj9uq3uamnwvaz7tmwdaehgu3dwp6kytnhv4kxcmmjv3jhytnwv46z7qmml2f somewhat missed is that there is no SQL for Nostr relays and there is, currently, no easy replication scheme to support load balancing, especially for geo-distributed semi-mirrored servers.
Relays ARE databases in the sense they store stuff, but if you need advanced querying capability OR if your events are too big (binary or text) or has too many tags (too many indexes), the relay operator might not be able to support it and might either reject it or become super slow.
The lack of a query language is a limit we are forcing on ourselves. The rest is pretty much solvable with the usual enterprise stack without changing the protocol.
By "the rest" you mean the "other stuff"? I certainly do not want to fall on the usual enterprise stack to make my other stuff client work
The relay operator is free to reject a request or charge for it
"Relays should not be treated as databases" is silly and can kill nostr.
The relay query language was designed around a social notes client use-case. The "other stuff" that we love to talk about, as much as it's part of the nostr acronym, is an afterthought.
Other stuff clients do not work like social clients. They have way more specific requirements and hence need to use relays more like databases.
Since the query language is terribly limiting, this results in:
- Higher amount of requests
- More bandwidth
- More client-side processing
Do we want nostr to compete in terms of UX with other platforms/protocols or be forever lagging behind?
Worst of all, this leads developers to implementing hacks to perform queries (custom languages via NIP-50, for instance) which entirely defeats the point of a relay: to be easily swappable.
If we can't easily swap relays, nostr is dead.
The rationale for not treating relays as databases is based on the fallacy of simplicity. Since we want anyone (yes including your grandma) to create a relay we must make it as simple as possible – so we should not force implementation details such as requiring a database.
But guess what is the simplest way to build a relay? Using a database.
If we want nostr to succeed we must grow up, assume that relays will have a database backend, and reach consensus on a better query language that we're confident can be implemented in most engines (SQL, noSQL, graph, and so on).
Not perfection, not a highly complex language, but something that allows more flexibility than the archaic filters we have right now.
While this is definitely needed, I have my doubts about cramping everything into one kind. Are we going to make that table huge?
For example, nostr:npub1gm7tuvr9atc6u7q3gevjfeyfyvmrlul4y67k7u7hcxztz67ceexs078rf6 wants to position himself as a reproduceable attestation service provider. He's drafted an event for this response which would be too complicated for inclusion here.
Same for WoT, it is a contentious topic and I'm not even sure what 0-100 means. The response would likely require more data than an integer. nostr:npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup
Something like the DVM NIP that uses sub-kinds might be more useful.
We'll start by having a predefined nostr apps list, way easier. In time, users will be able to define their own, which could work as a backup/restore mechanism like I mentioned. nostr:npub1dergggklka99wwrs92yz8wdjs952h2ux2ha2ed598ngwu9w7a6fsh9xzpc would be thrilled with this.
Hey nostr:nprofile1qqs8y6s7ycwvv36xwn5zsh3e2xemkyumaxnh85dv7jwus6xmscdpcygpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz8thwden5te0dehhxarj9ekh2arfdeuhwctvd3jhgtnrdakj7qghwaehxw309aex2mrp0yhxummnw3ezucnpdejz7qxvpy4, when are we going to get app bundles on zap.store?
I want a bundle with every single functional Nostr app for Android. I want to install all of them with a single click.
And, ideally, they are already logged in with my nsec somehow (Amber?).
Once we get non-interactive installs next milestone (end of year) then it would be possible.
Who would define this bundle?
For auto-logins, Amber would have to be installed and set up first.
nostr:npub1w4uswmv6lu9yel005l3qgheysmr7tk9uvwluddznju3nuxalevvs2d0jr5 How would you approach designing something like this?
