Avatar
reya
126103bfddc8df256b6e0abfd7f3797c80dcc4ea88f7c2f87dd4104220b4d65f
Projects: - Coop: https://github.com/lumehq/coop - Lume: https://github.com/lumehq/lume - Nostr Connect Extension: https://github.com/lumehq/nostr-connect

oh, maybe something wrong with AppImage builder, but I will try deliver as flatpak or snap instead

thank you ๐Ÿ˜Š, but it still a bit buggy at this time, next relaese will be more polish

Looking for some designer feedback on Lume's onboarding flow #nostrdesign

download latest release: https://github.com/luminous-devs/lume/releases/tag/v1.2.4

Replying to Avatar PABLOF7z

๐Ÿ“ข 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.

I'm testing outbox in Lume, look like it stuck forever if some relays cannot connected ๐Ÿ˜…

my code: https://github.com/luminous-devs/lume/blob/10036500cb0742e20232c7f8b5dd6baaeb639f9f/src/libs/ndk/instance.ts#L58

Replying to Avatar Derek Ross

nostr:npub1y27q6mdnjf0mkl3ev2nh7dqsk4yu3hyqmhzfz8tg3hdpwdmdfdlsczzps3 is coming to Amethyst ๐Ÿ˜‰ Soon, you'll be able to use our super fast search relay for your mobile queries.

https://github.com/vitorpamplona/amethyst/commit/8eb89f0fe95e7cd5b0c7e037d107682fe1404069

that great, I will noswhere to Lume too

Lume on Linux is working fine now. I still need a bit of time to improve the UI and fix bugs.

I have also redesigned the widget list to provide more information. In the future, Lume can be extended via extensions/widgets.

#nostr #nostrclient

๐Ÿ‘€ what is it

I will add NIP-13 to Lume, maybe around ver 1.4 (currently ver 1.2)