Avatar
franzap
726a1e261cc6474674e8285e3951b3bb139be9a773d1acf49dc868db861a1c11
Building nostr:npub10r8xl2njyepcw2zwv3a6dyufj4e4ajx86hz6v4ehu4gnpupxxp7stjt2p8 and #purplestack | BA πŸ‡¦πŸ‡·

Thanks. I had to use a public instance, could you make Knox support ws:// so it can be run on a local relay without a certificate?

nostr:npub1q3sle0kvfsehgsuexttt3ugjd8xdklxfwwkh559wxckmzddywnws6cd26p knox is great

Just having an issue with

AggregateError: All promises were rejected

Error: rate-limited: you are noting too much

at NRelay1.event (https://jsr.io/@nostrify/nostrify/0.36.1/NRelay1.ts:165:13)

But I just used twice. Where does the rate limiting come from and how can I disable it?

Can you say more? How likely is that given the current geopolitical context? I haven't heard anything pointing to it

Not having REST next to websockets as part of NIP-01 i think is a mistake

Imagine being able to access the whole network just with curl.

It's negating a great usage avenue for no good reason

https://realy.lol is my nostr work

it runs pretty nice already, i'm now into that stage where i'm adding this kind of feature as management

Cool, I just saw the docs on export/import. nice

I'm using Khatru because it's a library and I need customizations

i will sit and read those two things a bit closer and formulate answers to all the points more concisely

i think the main thing is that there are data structures and contexts we can use to make a different semantics

a human follows to subscribe, but it's just a list of npubs, so it can easily be a whitelist for posting or a whitelist for access, and opposite for mute list

lists as a whole would let you add more functionalities, so you could annotate them and create a hierarchy of meaning about what these differently labeled lists mean

so you see, none of that required me to invent a new protocol, i just used what exists with the new context of "robot nostr user that controls relay" and you have several ways to regulate permissions and relay settings right there

anyway, just elaborating a bit more on answering the question, really i'm just implementing things that form a small part of what this NIP is about and i do want to look at it to make sure i'm not mishandling the information somehow or wrongly thinking about how to work it

right now i'm just refactoring this admin interface to have basic auth on it which means relay owners literally can just access at least some of the controls with URLs and a web browser, i think that this is a simple mechanism that would enable a lot of things... and i already have #realy whitelisting read/write access and blacklisted npubs feature implemented, and control it with my regular account, which is perfect for a personal relay

Do you have a repo?

It also requires a NIP-98 auth event... feels very convoluted - but maybe I'm wrong.

If you had to design it, how would you go about it, including the auth?

Totally. None of this was not directed at you. Maybe at Satoshi? πŸ˜…

It takes more time to type, but less time to read and understand which is more important, imo

Too many programmers do not pay attention to naming things properly (speaking in general here) and this is easily avoidable technical debt.

In addition, it looks nicer. It's better to work with things that look nicer and not sloppy.

Checking out NIP-86, a JSON RPC-like protocol.

All method names are lowercase, like "listeventsneedingmoderation"

Is it so difficult to name things like a normal person, e,g. ListEventsNeedingModeration or I'm missing something here?

Same question would go for Bitcoin Core, btw.

Announcing NostrDVM 1.0.0.

After 1.5 years of experimenting, researching, and building, I'm happy to announce that NostrDVM - A Python framework to build and run Nip90 Data Vending Machines - hits version 1.0.0.

NostrDVM allows anybody to provide both free and paid micro services on #Nostr. This ranges from content discovery algorithms to image, text or video generation, translation services, text-to-speech, speech-to-text, music generation, basically whatever you can imagine, now and in the future.

You might have come across some of these services in some of the social clients or in DVM specific clients, most likely for content discovery.

The framework handles all NIP90 logic, and manages NIP89 announcing DVMs, zaps, nutzaps, encrypted and public tasks, local databases, web of trust, NWC, outbox model, auth with filehosters and a whole bunch of other NIPs, so developers can focus to bring their existing code, models or API to Nostr.

Tutorials to quickly start are provided on GitHub as well.

My hope is this framework can help developers, both professional and hobby enthusiasts to build new, and enrich existing services on Nostr, improving the experience around clients for all users and compete in an open marketplace of services. I'm excited to see who will build the best content discovery algorithms, or who will provide the best AI models in the future.

I'm grateful and l'd like to give a big thank you to nostr:nprofile1qqs8suecw4luyht9ekff89x4uacneapk8r5dyk0gmn6uwwurf6u9ruspzpmhxue69uhkumewwd68ytnrwghszxthwden5te0wfjkccte9eekummjwsh8xmmrd9skctcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs2juazd for making it possible to focus my energy on this project in the last year. It was my pleasure and an honor.

I will continue to maintain DVMs (actually I recently deployed them on a new, more powerful server) and the framework itself, maybe at a bit lower pace than recently, and my DMs are open if you have questions or issues building your own DVMs.

You can install NostrDVM by running

pip install nostr-dvm

and you can find the code/instructions and tutorials here:

https://github.com/believethehype/nostrdvm

Very cool man, congrats!

Would it be possible to use with code in other languages? I recall Carman building a prototype for a DVM engine that you provided a wasm to

Listening to legend cashu developer nostr:nprofile1qqs9pk20ctv9srrg9vr354p03v0rrgsqkpggh2u45va77zz4mu5p6ccpzemhxue69uhk2er9dchxummnw3ezumrpdejz7qgkwaehxw309a5xjum59ehx7um5wghxcctwvshszrnhwden5te0dehhxtnvdakz7qrxnfk on Citadel Dispatch with nostr:nprofile1qqsqfjg4mth7uwp307nng3z2em3ep2pxnljczzezg8j7dhf58ha7ejgprdmhxue69uhhyetvv9ujucnfw33k76twwpshy6ewvdhk6qg4waehxw309amk7apwdehhxarj9ecxzun50yq3yamnwvaz7tmhda6zuat50phjummwv5qxfslc, talking about cashu.me and PWAs and this triggered some thoughts.

Needless to say PWAs are an effective way of distributing applications permissionlessly, especially on iOS, but there's a few drawbacks I wanted to mention.

- Hard to install: the fact that you have multiple steps that need explanation (go to the hamburger menu, tap on install, but on iOS use Share...). As insignificant as this sounds, it's a major UX hurdle for users and why I think PWAs are not more widespread. Apple and Google know this very well.

- Harder to discover: though not needing an app store is an upside, it hurts discoverability, especially on app stores with a social layer like nostr:nprofile1qqs83nn04fezvsu89p8xg7axjwye2u67errat3dx2um725fs7qnrqlgzqtdq0

- Reliance on domain names: Not a huge problem but definitely not as sovereign as private keys

- Hard to verify releases: since you pull data and UI from a website, it's unclear when you have upgraded, impractical to sign and next to impossible to audit a particular release. Websites typically perform lots of deployments every day

I have plans for nostr:nprofile1qqs83nn04fezvsu89p8xg7axjwye2u67errat3dx2um725fs7qnrqlgzqtdq0 itself to become a PWA to distribute PWAs, too, and looking forward to find out how to minimize these problems without losing the freedom the web provides.

What on earth are Android devs doing to get a 100+ MB APK? πŸ€”

Borderline disrespectful to users

While my situation is quite different, a lot of Tony's article resonated with me. Great read.

A few quotes:

The thought of doing something else felt like betraying not just my career path but also my beliefs, my community, and years of dedicated work

I've stepped back from the endless cycle of trying to prove Bitcoin's worth to a world that wasn't asking for it.

1. My efforts in this space are technically challenging/impressive yet unnecessary and don't matter. High-risk and low-reward. 2. Most Bitcoin startups and efforts also fall under this, but the clear value is in exchanges.

The ones that make it through are either bending the knee to the state, resorting to degeneracy, or doing low-risk but sustainable work, potentially setting themselves up to leech off the real hard work of others. I've realized this and had enough. I work hard, I care about my work, I hate bullshit, and I want to make a meaningful impact while being realistic about what I can change in any given domain.

Nevermind. I like Coinkite but management has made a foolish move here

It's an idea, tbc. Many users don't like being tracked like that

Tried but when I enter the space (below relay info) i just see a spinner. Waited for over a minute