Avatar
Greg
1c52ebc82654e443f92501b7d0ca659e78b75fddcb9c5a65f168ec945698c92a
I like to learn things and build things | bitcoin enthusiast | energy production maximalist | abundance advocate

Here's this week's summary of what's going on in Nostr! (in case your client doesn't yet support long form posts yet)

https://habla.news/a/naddr1qqxnzd3exyervvfjxgcnjdfjqgspc5hteqn9fezrlyjsrd7sefjeu79htlwuh8z6vhck3my526vvj2srqsqqqa280wqjhs

#ThisWeekInNostr

Replying to Avatar jb55

Hey guys,

I've been quiet lately... I've been working on something big. In the past 2 weeks there have been 9539 new lines of code added to damus, 2928 removed, 279 files changed. I've rewritten much of the codebase in preparation for the nostrdb integration.

## nostrdb

What is nostrdb? nostrdb is an integrated relay within damus, with the same design as strfry, but slightly different to support embedding into nostr apps. This will be the heart of Damus apps going forward, including notedeck and other future microapps. Think of it as a kind of development kit but with an embedded database and query capabilities. I didn't want to have to recreate all of the same querying, caching, and parsing code when building new apps, nostrdb will solve all of the painful and slow parts. nostr seems simple but if you want a fully working app it is pretty complicated, especially if you want it to be fast and sync efficiently.

### Goals

* be the best and most efficient at querying, syncing and storing nostr notes

* enable direct mapping of notes into application code without any serialization overhead

* provide advanced syncing capabilities such as negentropy, which allows us to only query stuff we don't have

* be as portable as possible. nostrdb is a C library that you can embed into basically anything.

* full relay filter support

* full text search

### Benefits

* full note verification

* more efficient de-duplication before we begin processing events off the wire

* set-reconciliation based syncing (negentropy) drastically reduces bandwidth usage and latency

* iteration on future nostr apps will be quicker (android, desktop, etc)

* features like ghost mode, account switching, etc will be much more efficient as you will be able to quickly switch between notes that are cached locally

* much smaller memory footprint due to optimized in-memory note format, which in turn improves cpu-cache efficiency

* much better profile and note searching

So that's what I've been working on in the past two weeks. On to what else is new in this release:

## Multi reactions!

Suhail did an amazing job at adding multiple reaction support. All you need to do is long-press the Shaka button to show different options. You can customize these in settings as well

## New onboarding features

Damus will now suggest people to follow when you first enter the app, this is the first of many onboarding improvements coming soon. Thank Klabo for this one!

That's all for now! Please test thoroughly and let me know if you run into any issues. You likely will since the entire codebase has been changed, and I probably broke something.

Until next time 🫡

This is amazing. Nice work 👏

Replying to Avatar Greg

I wanted to share a project I've been working on in my spare time: https://relay.guide

The goal is to help people discover relays to join. Right now it can help find relays by:

1. Paid / free

2. Name or keyword (weedstr, damus, etc)

3. By the recommended relays of people you follow or like. (https://relay.guide/relay-lists)

You can also look at each relay's metadata. I also added a tool that may be useful to devs to be able to query the events on that relay by kind or author pubkey, etc (https://relay.guide/inspector)

I tried to make it easy to copy relay info so you can update your relays if you find an interesting relay through this.

It's similar to nostr.watch but I'm hoping to add some novel capabilities soon:

1. Discovering relays by the relay lists of others

2. Discover by relay community preferences and/or language tags (most don't publish this yet, but I'm going to reach out to folks and advocate for it)

3. Add the ability to manage your relay list from this app (auth with Alby or similar and add / remove relays right from the discovery tools)

The code is open source so feel free to log issues or make suggestions or contribute! https://github.com/gregorygmwhite/nostr-relay-explorer

#nostr #buildstr

https://void.cat/d/LM4hoGwwZsiUeeZcCWSnKx.webp

https://void.cat/d/FLY6eme1haiK9v3KhKy9uF.webp

https://void.cat/d/Bd1gD1kT9uHKii9UV9WVhS.webp

https://void.cat/d/3jM3f7S4wPa13CuzHhVw5t.webp

Oh and if you don’t see a relay that you know about please add it! And it’ll start tracking and updating the metadata regularly.

I wanted to share a project I've been working on in my spare time: https://relay.guide

The goal is to help people discover relays to join. Right now it can help find relays by:

1. Paid / free

2. Name or keyword (weedstr, damus, etc)

3. By the recommended relays of people you follow or like. (https://relay.guide/relay-lists)

You can also look at each relay's metadata. I also added a tool that may be useful to devs to be able to query the events on that relay by kind or author pubkey, etc (https://relay.guide/inspector)

I tried to make it easy to copy relay info so you can update your relays if you find an interesting relay through this.

It's similar to nostr.watch but I'm hoping to add some novel capabilities soon:

1. Discovering relays by the relay lists of others

2. Discover by relay community preferences and/or language tags (most don't publish this yet, but I'm going to reach out to folks and advocate for it)

3. Add the ability to manage your relay list from this app (auth with Alby or similar and add / remove relays right from the discovery tools)

The code is open source so feel free to log issues or make suggestions or contribute! https://github.com/gregorygmwhite/nostr-relay-explorer

#nostr #buildstr

https://void.cat/d/LM4hoGwwZsiUeeZcCWSnKx.webp

https://void.cat/d/FLY6eme1haiK9v3KhKy9uF.webp

https://void.cat/d/Bd1gD1kT9uHKii9UV9WVhS.webp

https://void.cat/d/3jM3f7S4wPa13CuzHhVw5t.webp

nostr:npub12262qa4uhw7u8gdwlgmntqtv7aye8vdcmvszkqwgs0zchel6mz7s6cgrkj nostr:npub18ams6ewn5aj2n3wt2qawzglx9mr4nzksxhvrdc4gzrecw7n5tvjqctp424 I’m using nostrplebs.com and I was hoping to set my “recommended relay” with y’all’s nip5 service.

Is there a way to do that? If not could I try to help y’all add that capability?

I think this will help people join relays that have more of the people they want to follow (by nature of someone they want to follow’s NIP 5 telling them about that relay)

Thanks! ❤️

Already have enough for next week’s. So much development going on in the Nostr-verse!

CIA, so many problems stem from an unaccountable paramilitary agency like this. I’d guess most of the work to protect military industrial complex sits in the CIA. And it’s very hard to disrupt this from the outside.

it’s tempting to say the federal reserve. But I think the fed can be curbed from the outside with Bitcoin.

Yup! Posts on habla.news are “replaceable events” so you can update the note as many times as you like.

It’s a project to create a relay that’s easy to host and manage as Nostr scales. It’s a good relay as is but there’s work being done to improve it to make it the easiest to manage (which might be more important than being the fastest or cheapest to host)

Absolutely. I saw relaying.io for mostly personal use. But I want an easy to deploy relay service.

It could be as easy as a render blueprint http://onrender.com

But that’s hardly cost effective 😂 even if you charge for admissions and publication of events.

Thanks! All that needs to change is for relay operators to add community preferences (it’s a config file update for the person hosting the relay ). Just need to reach out to relay operators to see if they’re interested.

And then folks could use my https://relay.guide to find people by those preferences.

Still working on a few performance improvements and a filter by community preferences. But I’m doing both things in parallel.

Best part is relay operators with community preferences don’t need to moderate people out that don’t fit in the community preference, it’s just about drawing in people that care about similar things.

I’m working on a way for people to find relays that are for their interests or community.

But I think right now most relays are just broadly available with no preference on what community they want to create (other than some language specific tags)

I’m gonna start reaching out to relay operators and ask them to explicitly add community preferences to their relay metadata so that people might start congregating by interest/community/locale and discovering folks via the relay global feed or replies they only see because of the relays they’re on.

It’s slow work because most discovery work seem to default contribute to centralisation.

nostr:note1982wq72wq03zjk4henuuukpnvp6a2z07j2q6nwsqhuk0za4sx3dqqt2x95

Not sure if you’ve seen this yet