📢 NDK 1.0 is out!
Codename: Outbox ✅
When I set out to write NDK my main goal was implementing the gossip protocol, now known as *outbox model*. I wanted nostr applications to have decentralizing tendencies by *default*; transparent to the developer.
After a few failed attempts, it's finally here, which, paired with a bunch of non-backward compatible changes, prompts me to do a major version bump.
# What is outbox model?
In short, the outbox model allows nostr to fragment, instead of everybody coalescing around a few popular relay and using things like Blastr. Nostr simply doesn't work without the outbox model.
# Main changes:
* Outbox model support, obviously.
* `fetchEvent(s)` is now faster, (particularly with queries using exclusively `ids` filters).
* Fixed unstable relay back-off code (credit goes to nostr:npub1az9xj85cmxv8e9j9y80lvqp97crsqdu2fpu3srwthd99qfu9qsgstam8y8 for the valuable testing infrastructure)
* Defaults to blacklisting wss://brb.io #censorship (credit goes to nostr:npub1az9xj85cmxv8e9j9y80lvqp97crsqdu2fpu3srwthd99qfu9qsgstam8y8 for the widely hinted-at dead relay)
* Subscription aggregation now works when multiple filters run at the same time
* Subscriptions that should close when EOSEd are now closed when each individual relay EOSEs instead of waiting for all of them to EOSE.
* A better algorithm on when to signal a subscription's EOSE. The margin that NDK now gives to relays to EOSE is now a function of how many of the connected relays in the relay set have EOSEd (accounting for relays that are still sending events).
* There are *many* more changes that I needed to do to accommodate for this that I don't remember now.
Some of the most glaring breaking changes:
* `ndk.subscribe` now defaults to keeping the subscription alive; the default of closing subscriptions on EOSE was bothering me
* NDKUser changes the `hexpubkey` from a function to a getter, so wherever you were using `user.hexpubkey()` needs to change to `user.hexpubkey`.
# Enabling outbox model
Outbox model comes disabled by default *for now*, as soon as I test it more throughogly it will be the default.
To enable it you need to instantiate NDK with:
```
const ndk = new NDK({
explicitRelayUrls: [...],
outboxRelayUrls: ["wss://purplepag.es"],
enableOutboxModel: true,
})
```
The outbox model will largely be transparent to you and will work on the background once you enable it.
C'est une question bien difficile 🥲
Passer ma première traction, c'est mon objectif. C'est vraiment un exo qui me fait rêver.
Je progresse mais je n'y arrive toujours pas 😬
Je suis pas certain de saisir le concept
Steam seems broken on linux
Mon projet fonctionne mais il a des crash mémoire sans que je sache le pourquoi du comment. J'aimerais également ajouter des features
Pas de média à ma connaissance mais https://www.nobsbitcoin.com/ évoque certains sujets et autrement stackernews https://stacker.news/~nostr
Wow, on a des bots de recommendation sur DVM.
https://vendata.io/jobs/note1m566pul5fdv3sdxm6lh5xfr20uswzumn42rdllplff7gcnv635usy9m8dz
I'm looking for a peertube instance that support HSL.
Any idea ?
aucune idée
Il y a de fait un manque de confidentialité.
Ça permet justement d'expliquer les modèles et comment réduire le risque.
Ce qui est malheureux c'est d'en déduire que ça sert à rien d'utiliser les tools de confidentialité, je préfère utiliser mobero
Nianiania
A free market for data processing based on Nostr currently developed by nostr:npub1l2vyh47mk2p0qlsku7hg0vn29faehy9hy34ygaclpn66ukqp3afqutajft
That's a really cool idea.
I've put midjourney image generation on it
https://vendata.io/dvms/npub1jn0d00aygwjreatgh9c6rclxlvrycesqulf3hkhs529zvm3katasp4p32m
nostr:naddr1qq9rzd3exvcn2d35xq6qygqudva7x5cyrhv7pxa4dzj2jg6yufqt88h4avus7h57sgf88u9wdupsgqqqwensqm97n6
