#[0] where’d you go? Just read through your safer Nostr project code.
Blake
_@wako.ws
npub1ktw5...mrvj
#Bitcoin #Nostr #Freedom wss://relay.nostrgraph.net
I’ve got a hackish Damus POC for Nostr HTTP Auth using NIP98. Basically for 401 Unauthorised and 402 Payment Required image requests with a WWW-Authenticate: NOSTR-NIP-98 header, we can optionally retry with a signed event base64 encoded in the Authorisation header.
This is exciting because we get to use the 401 header, have a nice way to retry requests with Nostr auth, and can optionally accept payment or perhaps offer a subscription to gain access.
For the UX, I’d like to have a UI to add a domain to a trusted Nostr HTTP Auth List, which allows ask, or always send auth (for domain).
If you’d like to help progress the swift code for Damus, let me know. I’d appreciate the help.. as it’s a little complex managing cache and retries using kingfisher with custom requests.
#[2] is this something you’re open to accepting into Damus? It should only matter for content that returns 401/2 and has the Nostr auth headers - otherwise it shouldn’t do anything. So it’s an extension in capability.


PostgreSQL pooler and proxy (like PgBouncer) with support for sharding, load balancing, failover and mirroring - written in rust.

GitHub
GitHub - postgresml/pgcat: PostgreSQL pooler with sharding, load balancing and failover support.
PostgreSQL pooler with sharding, load balancing and failover support. - postgresml/pgcat
This is a cool project.
“Indra's production goal is to sustain up to 480,000 LN nodes per server over 10 clearnet IPs. This gives a cost basis of around $0.003 per month, down from $12-31 a month for traditional hosting. Around 4,000 to 10,000x cheaper.”
https://makers.bolt.fun/story/bringing-adoption-scale--444
I’m still trying to work out the best UX for this, however I have a hacky POC 402 Payment Required image loader Damus patch.
I’m thinking that when an image returns 402 Payment Required, and has a www-authentication header indicating NIP 98 HTTP AUTH, the user can “allow Nostr http auth for cdn.domain.com”, which can either confirm existing access to show image, or offer a LNURL to enable pay for access.
A default thumbnail image or blurhash style unauthorised/unpaid could show by default. Or client apps could show some kind of auth/payment required overlay icon.
Same concept could apply to 401 Unauthorised content - however it would skip the payment request flow. Other content types could be supported too.. images are just easy to start with.
This can enable membership checks or individual paywalled content, primarily for rich media.
Thoughts, feedback and ideas welcome.


We have a working approach for using nostcat to query Nostr Tor relays for events.
For better support we’re likely waiting for upstream dependency support for socks proxies - but this works fine.

GitHub
Add Dockerfile by 501st-alpha1 · Pull Request #5 · blakejakopovic/nostcat
I've added a Dockerfile so that nostcat can be built and run in a Docker container, in case e.g. one doesn't want to install Rust on their host OS.
This is a cool telegram bot being ported to Nostr.
“Due to the growing need to be able to operate with Bitcoin without giving up personal data, in 2021 I started a project to allows people to buy and sell Bitcoin through Lightning Network without funds custody and without KYC, this project is a telegram bot called @lnp2pbot.”

GitHub
GitHub - MostroP2P/mostro: Lightning Network peer-to-peer exchange platform on Nostr
Lightning Network peer-to-peer exchange platform on Nostr - MostroP2P/mostro
Twitter 2023. Works best if you squint.


Interesting also to watch early day products.
Reminder: Twitter is blocked in Russia. This is one way to get access. https://github.com/xnaas/nitter-instances
May seem weird to be promoting the bird, however Nostr needs to remain censorship resistant to state based actors.
#[0] for nodeless.io, do you have documented webhook payload JSON? I can see the CRUD APIs, just not what the webhook should expect.
Does it return the same as the types GET _type_ Request for each?