Replies (64)
So we back to the 90s? :)
the cloud is someone else's model training on your data.
OK so support p2p cryptocurrencies like Bitcoin and Monero and doggie coin instead of the lightning shitcoin that makes users rely on the cloud
Wait, why am I even replying? You have me muted despite the fact that I once used lightning against my better judgment to zap you 48k sats for your work on software I can't even use as a non-Apple fanboy
but even the db is in the frontend. the backend is just a replica of the frontend's local db
I don't care, I just wish the training was to learn what's in the data instead of learning how to ignore it
aw ye
You are describing local first apps, however they still need a server to help syncing when p2p doesn't suffice, which is often the case, but that is assuming you don't also need a datastore.
There is only so much apps you can build without a reliable storage for user data, even if that storage is a laptop operated by one of their family... it doesn't matter.
Then if you want to have large search indexes you need centralisation, but at least we shouldn't take a step backwards from WebDav, we should make it better; check Peergos for that, you probably will like it.
a lot of early nostr apps started with server-as-the-only-datastore but now many of us are making nostr apps local-first + set reconciliation with remote only when you need it.
the flexibility of choice here is super powerful. notedeck is local-first by default for any app you build inside it (its a nostr browser). local network or remote syncing is more of a business logic choice for the app.
Lightning is p2p
Kinda like how soulseek "is P2P"
Involving P2P connections, not being a full P2P network
Absolute trash people call "Bitcoin" so it can borrow the name recognition and reputation of an actual cryptocurrency
I understand that, it is not unique to Nostr, it has been a thing since Git, and Peergos for example while it puts lots of emphasis on data integrity using authenticated data structures (as opposed to separate events) it still acts as local first, and tries to sync with the server with CAS like api.
My point is that eventually you are going to run out of apps that don't require a clear and consistent answer to the question "did I update the state yet?" Or "What is the canonical state that others eventually will see".
There is only so many apps that can tolerate the lost update problem, which is very common in systems that don't have a datastors.
My point is; data stores are not a centralisation force, unlike say search indexes and "global feeds", so we shouldn't give up on them, they can be as easy as letting the user choose one of their devices as a home server, and all other devices wait for it to acknowledge updates, and show things in pending state otherwise...
But also, if your notes can be found, then a note about your "Outbox" can be found, and then that home server being cloud hosted is not really a "shitcoin", because you can't exit it on a whim.
If you call the blockchain the cloud, sure
But then will would be calling Bitcoin a shitcoin so I don't think a p2p blockchain network counts as the cloud here
In my experience it works very well.
So you're relying on a constant internet connection and paying for it with your data and possibly also money too
Yes, I run a home server to be part of the network instead of expecting it to be provided for me.
the behavior is up to the app to decide how they want the data synced, not the protocol. its true this logic might diverge between apps, but if looking at it on a per app basis then it will work fine.
if cross-app compatibility is important enough (i think it is for microblogging), then we will converge to things like outbox and other methods, but we are not tied to it and its open to be improved even more. its bottom up not top down. its the bazaar not the cathedral.
the SSB, matrix and even git guys already tried the method of heavily perscribing the state syncing in a top-down way, and it just sucks for app development.
Miners and nodes get paid, it's not a charity you deceptively-phrasing fuck
Including lightning on your home server is promoting a shitcoin that makes people rely on the cloud
I respect that. My experience is usually that devs are frustrated when I put in their hand and API that doesn't block until the data is canonically stored, so I am always surprised when Nostr OG devs argue that something like webdav or S3 would suck... but I guess you have definitely earned your opinion.
I just struggle to imagine what can be done with Nostr that a remote storage API with a tree over the data, just like LMDB would make impossible or suck, for example when I don't want need LMDB atomicity I build my own buffer, it doesn't get in my way.
I would still be interested in learning what would you hate about something like LMDB but with remote api?
It doesnβt make anyone rely on the cloud. Nodes are easy to run. And whatβs the alternative?
The alternative was the whole point when you first replied, people should be using doggie coin if they want fast cheap public transactions or Monero+Tor if they want fast cheap transactions with more privacy
Lightning absolutely makes people rely on the cloud, it's batshit mega insane to pretend everyone can run a node currently
And I don't even see how you'd argue that running a lightning node isn't just using your server as part of the cloud shitcoin Will was talking about
Lightning makes users rely on other people's computers for custody instead of only for transactions
Bitcoin can be self custodied
This isn't dualism, you're the one showing signs of "psychological cope"
Dogecoin? Are you serious? If I wanted cheap transactions in a currency thatβs going to 0 against bitcoin, Iβd use Venmo.
Monero is the one that trends to 0 against Bitcoin so far. Bitcoin trends to 0 against doggie coin throughout doggie coin's entire existence.
Maybe you're using childish zoomed-in charts or making some insane future prediction that defies all logic
You're the one that said "cloud is using other people's computers," how the fuck is me responding to that suddenly me changing the subject to "not the cloud" you deceitful asshole?
I've never needed a "scaling solution for Bitcoin" in any way Monero and doggie coin wouldn't help with
If you need something that relies on the cloud, I don't care, and it doesn't change what the term "cloud" means
I'm not sure if
@fiatjaf intended this when designing the protocol, but it affords use cases that do not depend on a remote api. and that is really useful. the protocol dictates a uniform query interface that doesn't necessarily depend on location. so this enables local-first apps with optional remote replicas.
not *needing* an api is huge. the query language is the universal api. this means a local app would work exactly the same as one with data stored on a remote relay.
you *do* have blocking write confirmations, I added it to the protocol in the form of command results (OK). you just don't have transactions, but that can be implemented at a local layer before replicating.
I imagine building a distributed transaction model would be complicated, dbs like tigerbeetle and foundationdb are very complicated. the only other project I can think of tackling this in an interesting way is

Simon Peyton Jones
The Verse Calculus: a core calculus for functional logic programming
Lennart Augustsson, Joachim Breitner, Koen Claessen, Ranjit Jhala, Simon Peyton Jones, Olin Shivers, Tim Sweeney, Epic Games Proc. International C...
via a deterministic logic language for building data models in a metaverse context, but that is also complicated.
nostr avoids this transaction complexity by an append-only graph style way of coding apps... if you ignore replaceable events, which I very much try to do at all costs, except where I can't at the moment (profiles, contact lists)
Will doesn't have to rely on mainstream options, he's a nostr dev. It's a scam
The scam is to delay the collapse of the dollar. Profit goes to people who print dollars, and those with economic proximity to them. Profit happens by having people do work, consent to rights violations, give up property, die, etc. in exchange for the printed money
There's also a side scam to try to get sats and even code consensus itself away from OG Bitcoiners in case that helps deceivers retain control after the dollar collapses
This needed commas
Fiatjaf is definitely a strong believer in RPC as superior to HTTP based API.
However, I think this is a week point, you can send HTTP queries over Bluetooth, HTTP headers are not inherently inferior to JSON, i argue it is better, if only because it allows for using curl and all the infrastructure of talking to servers.
I will however agree that a query language that is simple enough, and thanks to Fiatjaf discipline; resistant to creep and complexity is a great feature... but this is not special to Nostr either, nor does it get embedded by a canonical source of truth or a key value stor api.
You can name your keys in ways that make them effectively lookup indexes, which already covers many of what Nostr queries do.
The append only way is also entirely possible in a system like Peergos, and if you ONLY create new files. Then the CAS will never fail, but then you have extra features that Nostr doesn't have, like being able to see exactly what is the current state, and GC older leaves (which is what LMDB does as well) and everything we take for granted when we have a reliable database.
I am not supporting decentralised databases to the contrary, I am supporting a single writer (home server) so that we don't have to fuck around with decentralised transactional databases.. too hard. But the price of that, is a server, usually in the cloud.
My hope is that smart builders stop perceiving that as a bad thing, as long as the migration between home servers is smooth and permissionless.
Either way, I trust that people would converge into that eventually, and we would have something like Proton Drive (but open and self hostable) as the base layer of free web development, especially with decentralised PKI to make migration better than what it is in say Mastodon. I hope I did enough work to enable that.
People are underestimating how big of a threat cloud providers are to internet freedom.
Please continue killing them!
the fact that half the internet goes down when aws goes down is embarassing
Thereβs also the question of do you need transactions.
There is transactions for consistency, and thereβs transactions to ensure correctness of the system state (like indexes)
Many Nostr use cases actually do not need strict consistency. There is only some level of correctness required.
CRDTs and conflict resolution fixes this. A notes app for example can be represented as a set of diffs on top of each other, and two updates to the same note can be merged.
This is also why Dynamo and eventually consistent databases exist. You could also have slightly smarter relays that can do slightly smarter queries if you want.
Hi semi
Nostr devs are obsessed with the lightning shitcoin
No one has shown up who's willing to do basic problem solving because the goal isn't to solve the problems, it's to profit on them
The whole conversation started with this point, Will is talking shit about "the cloud" while nostr basically relies on "cloud" solutions and even goes out of its way to avoid stuff like on-chain tipping addresses
Monero and doggie coin probably have small enough fees to send 20 sats equivalent on chain right now.
On chain Bitcoin itself might even be cheap enough, if you set up periodic batch transactions instead of a new transaction every time (devs could also automate that)
I am too familiar with CRDTs... they don't generalise and more importantly they are very hostile towards deletion and storage reclamation as each deletion has to forever take space, the best you can do is what the Willow project does (deleting entire folders with one tombstone)...
Then of course migrating to other hosts or just backup becomes an optimistic operation where you can never know if you are done.
Seriously the only downside of authenticated data structures is that you have to block concurrent writes to serialise them, and I think that is such a simple thing to ask I don't understand why resist it.
Even Negentropy (Range Base set reconciliation) has now been proven to be trivial to do with any authenticated data structure with normal hash function (by the author of RBSR).
So I am constantly struggling to understand why not accept the limitation we accept with LMDB, and we know in our bones that it is worth it.
I also want to note, whenever I am arguing about design decisions I don't talk about Nostr usecas, I talk about the general usecase of web 1.0 (excluding Web 2.0 with its aggregation and indexing, because i am skeptical we can fix that).
So when someone smart says that the cloud is a shitcoin, my reaction is, hold on why go that far? Servers are cool, people like to know their data is safe? Why give up on these parts of the web usecases? Not everything is a broadcasting app, we need data integrity too.
As long as people can add new wallet address types and there are still blockchain networks with usable fees, it's "future proofed." Lightning isn't even today proofed
Good question though, important point
Nothing is gonna work for the masses, they're in overshoot heading into violent population decline
I want whatever can work for the survivors
Lightning has had a lot of people try to "scale" it to me personally without a single one actually proving it can scale to a single useful transaction
So prove it can scale to a single useful transaction before asking me to believe it can scale to all of them
Lightning is difficult or impossible to onboard, not easier
Many users are not equipped to self-host lightning nodes, and even the ones that do it still have issues
The option to use actual on chain Bitcoin isn't even there a lot of the time now, let alone doggie coin or Monero.
Steak n shake for example say they accept Bitcoin but actually don't
Correct. If you lie about accepting Bitcoin because you care about lightning instead of actual Bitcoin, we are not on the same side. I'm into survival
Now that they lie about accepting Bitcoin, I would simply decline any invites to steak n shake until they start accepting on-chain Monero.
I already wasn't likely to go to steak n shake before this since they're not in my area and not very interesting to me
If they simply told the truth about accepting lightning instead of lying about it being Bitcoin, I might do business with them using whatever money I have on hand, lightning or otherwise. Not after this shit, though.
Increasingly yes, since the lightning cult gets chain restaurants to lie about accepting Bitcoin
i mean there is no shortage of cloud bullshit. the local first, distributed app idea is criminally under explored. mostly because of the web which heavily encouraged the client and web server model of app development
remember couchdb?
It is not criminally under explored, there are tons of work done on that side of the equation, almost none leveraged by Nostr so far, for example I haven't seen anyone working with Automerge or engaging with the ink and switch people, most likely because all that ecosystem has little to no intersection with Bitcoin.
But these are not mutually exclusive concepts and giving up on open data stores is a step back from the old days of Email and WebDav... why take steps back?
Lol, you keep dropping interesting tech I've never heard of.
Happen to have a list of Nostr-conpatible tech by any chance ? π
I did that all by myself sir #bigboy
Don't use it anymore.
Lists?
Seriously this is one of the things I enjoy doing; connecting ideas across communities.
I had luck with Range-Based-Set-Reconciliation/Negentropy (I guess because people trusted Strfry developer, fair enough), not much with the rest of my suggestions :D
Nostr is not special, anything that people tried for local first and set reconciliation and "bring your own background" etc. applies to Nostr and any open web protocol.
Fun fact, Peergos is based on Cryptree which was developed like 15 years ago.
There are very few new ideas, just ego preventing us from using old ones.
> There are very few new ideas, just ego preventing us from using old ones.
:scoresoccer:
Looking into Peergos rn.
Trying to see how it can map onto private Nostr events and groups.
Where do you work currently btw? If its not Synonym any longer.
A handful of projects noone has heard about and not related to data-interoperable, local first apps is still criminally under explored to me. You keep referencing webdav like it isnβt the worst possible api in the history of apisβ¦ happy to leave those behind.
when the back end is the db, instant delivery, always on connection becomes less important. store and forward becomes possible, which opens up all kinds of interesting storage and delivery possibilities that dont include big centralized βsolutionsβ