Avatar
pjv
0c99877612291bd818b3dd92f2852b823557b3744c3cb10470865c7a56a4929b

On my brief read of the whole project, 'reticulum' is not a name for a social media protocol but is instead the name of a completely decentralized, encrypted, cryptographically addressable, un-surveillable networking stack that could (should?) replace TCP/IP altogether. It aims to be the plumbing that the Internet should have had from the get go.

Within the small reticulum ecosystem, there is a social media / chat protocol that is built on top it which is called LXMF (https://github.com/markqvist/lxmf).

Yeah, I use lists extensively on X and it was one of the two things that I miss(ed) a lot in nostr until now. I love this new gossip list implementation. Thanks Mike!

(The other thing I miss is the UI ability to assemble my lists in parallel tabs in one wide window like tweetdeck)

Reticulum is very interesting - thanks for posting that.

nostr devs might be interested in this repo which is a lightweight messaging format built on top of the reticulum networking stack. There is considerable overlap with nostr functionality: https://github.com/markqvist/lxmf

GOSSIP USERS on "master" branch:

I've just merged in a lot of unstable work. Here is an explanation of what changed:

Expect some data migrations.

PESON LISTS:

The main change is that you now have multiple curatable PersonLists which you can view as feeds. There is a new menu item "Person Lists" where you manage these. And under "Feeds" you can view any of these lists as a feed. "Followed" and "Muted" are now under this system ("My Notes" and "Inbox" are separate).

These PersonLists are all manually synchronized, just like your kind-3 Contact List (Followed) has always been, because other clients may clobber these. You have to publish them manually, and merge or overwrite changes found in nostr events manually.

You can manage who is on these lists from each person page too. Click an avatar and flip switches!

RELAY COMMS

Just this morning I improved gossip's communication with relays, retrying failed subscriptions when appropriate, waiting for AUTH, and handling CLOSED messages better. This code did not wait for the normal unstable testing, so if you notice any problems with it let me know.

TAGGING

This was already on master, but in case you hadn't noticed we finally fixed the horrid tagging UX. Now you type an @ and start typing a name, and you get a picker to choose from.

TLS

This was already on master. We changed how TLS works. By default it uses rust-based TLS code, but your operating system's native certificate store. This combination helps support relays that live on Tor .onion sites as you can now install .onion certificates locally. However, rust-based TLS code does not like self-signed CA certificates (technically they are not valid - you should instead make your own CA and then issue SSL certificates from it), so if you get "The Trust Settings Record was corrupted" you might want to use native TLS code instead by compiling with "--features=native-tls --no-default-features"

RELEASE

We have a few more things to do like renaming a person list, some bugs to fix, and polish, and then I hope to release a new version

Happy Sunday to those people still living in the weekend!

Really excellent work on this. Love the follow list implementation.

If I toggle "public / private" to private for a person, does that mean that if I publish that list the person who is set as private will not be part of what is published (i.e. I'm following them only from this instance of gossip and nobody can trivially [without access to behind the scenes relay data] see that I am following them?

Replying to Avatar pjv

That's funny. I also mostly use a desktop over starlink and use gossip (though I happen to be composing this on Amethyst on my phone at the moment) and I currently follow fewer than that so yeah, for me there is no performance bottleneck, no battery issues.

I also run a personal relay based on strfry with my own minor modifications and I very much like the idea of client proxies. But I also grow most of my own food. And while friends who come over admire my garden and tell me how much they'd like to have one like it themselves, everyone knows that the vast majority of people are not gonna be spinning up a VPS to run and maintain a proxy relay.

I think needing to even subscribe and pay for a proxy that someone else runs is going to be too big an adoption hurdle for nostr to get beyond fringe usage in the age of downloading an app to your phone that "just works" in about 15 seconds. I hope I'm wrong but that's how it seems to me.

For me, the problem with even "50 or 100" big relays that everyone uses is that each and every one of those relays becomes a target for government's that think their job is to keep people from saying things they don't want them to say. If there is such a target set, no matter the intentions of the people operating those relays, the whole thing is too vulnerable.

I think the only way it's not vulnerable is if relays are tiny, cheap, stupid and ubiquitous so that it's effectively impossible to police them by sheer numbers. I recognize that world has all the performance and scaling issues we are talking about and it also may not work in the sense of getting past fringe adoption. But again, I'm here for the free speech absolutism, not for the stickers, badges, likes, follower counts, etc.

I don't know why the post I'm replying to has a content warning. My old man fingers and eyes don't know how to use this little phone client very well.

I personally use a desktop computer over a starlink interface and I follow about 170 people. Right now I'm connected to 31 relays, which is far fewer connections than this computer can make. So it is working great for me.

But I recognize that younger people tend to only have a smartphone and fewer people use desktop computers. And I recognize some people want to follow thousands of other people. That is a difficult thing to make work well in a direct fashion under the outbox/inbox model.

But it can work indirectly. One solution is using a client proxy (which nostr:npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn and I speak about briefly on his podcast that will be coming out in a week or so) which is basically an internet server which acts like a client on your behalf on the outside, and presents like a relay on the inside so that your mobile app only needs to make one connection. That can be done right now with zero changes to the NIPs, using the inbox/outbox model, and it solves that mobile phone problem far better than (1) blasting events everywhere, or (2) everybody centralizing on the same relays. Sure, most people won't be running their own client proxy, they will sign up as a customer to a client proxy service. But they can easily move to a different one if the one they are using starts censoring them. And us hacker do-it-yourself types retain the option of running direct.

nostr:npub18kzz4lkdtc5n729kvfunxuz287uvu9f64ywhjz43ra482t2y5sks0mx5sz

That's funny. I also mostly use a desktop over starlink and use gossip (though I happen to be composing this on Amethyst on my phone at the moment) and I currently follow fewer than that so yeah, for me there is no performance bottleneck, no battery issues.

I also run a personal relay based on strfry with my own minor modifications and I very much like the idea of client proxies. But I also grow most of my own food. And while friends who come over admire my garden and tell me how much they'd like to have one like it themselves, everyone knows that the vast majority of people are not gonna be spinning up a VPS to run and maintain a proxy relay.

I think needing to even subscribe and pay for a proxy that someone else runs is going to be too big an adoption hurdle for nostr to get beyond fringe usage in the age of downloading an app to your phone that "just works" in about 15 seconds. I hope I'm wrong but that's how it seems to me.

For me, the problem with even "50 or 100" big relays that everyone uses is that each and every one of those relays becomes a target for government's that think their job is to keep people from saying things they don't want them to say. If there is such a target set, no matter the intentions of the people operating those relays, the whole thing is too vulnerable.

I think the only way it's not vulnerable is if relays are tiny, cheap, stupid and ubiquitous so that it's effectively impossible to police them by sheer numbers. I recognize that world has all the performance and scaling issues we are talking about and it also may not work in the sense of getting past fringe adoption. But again, I'm here for the free speech absolutism, not for the stickers, badges, likes, follower counts, etc.

I think this is right. Unless someone comes up with some magic - which I don't rule out - it's a trade off.

I think a lot of people are not going to be satisfied with anything other than a Twitter clone. And I really think that failing the magic the only way to produce a performant Twitter clone is via some version of a big db controlled by a single entity.

Personally, for me, censorship resistance is way more important than all kinds of things that Twitter has that I don't care about so for me that trade-off is easy to make.

Since I got involved with nostr I've been ranting against doing things that Twitter does that I think are impossible to do (properly) in a meaningfully decentralized protocol. Like counting likes and followers. I mean, of course you can count them as long as you are satisfied with a count that is always wrong and sometimes way wrong and totally wastes resources to compile.

Personally, I'm here to read what certain people have to say. I don't give the slightest shit how many people follow them or how many people like what they say. But what I want from a system like this is different from what others want. I won't ever need to follow more than a few dozen people.

Sorry I massively oversimplified because I think it's a big picture issue. Of course there is a lot of grey. But essentially there are currently three big picture models. There's one big database (which of course is not really one db, but again simplifying) aka Twitter, there's semi decentralized where independent servers federate aka mastodon, and there's fully decentralized like nostr currently is trying to be for the most part.

I'm not trying to be dismissive or sarcastic. I've tried to come up with something better and I can't. But that doesn't mean someone else couldn't. Maybe you will. I hope you do.

Come up with something better is the exact right response. Essentially at the moment there is a pretty stark choice between decentralization and performance / efficiency.

You can get performance and efficiency by aggregating and thus centralizing data. That's Twitter.

Or you can have the basic nostr model of data spread far and wide under no point sources of control with the trade-off that it's never going to have the efficiency of a monolithic database and the need to invent new optimizations that make it work acceptably well.

The gossip / outbox model seems like the current best basic optimization that retains real decentralization (without which nostr is absolutely nothing interesting at all) and lets clients find stuff.

Come up with something better.

Replying to Avatar sudocarlos

The thing with lightning is that you're going to have to deal with liquidity and opening channels. Supposedly https://github.com/ZmnSCPxj/clboss is good at automatically managing your node, but it requires Core Lightning which is different from the node software that most plebs use - LND. https://github.com/cryptosharks131/lndg is an alternative that runs on LND, but it's not as automated.

Anyway, back to easily running software without a GUI - your best option is probably to set up Ubuntu Server in a VPS and follow nostr:npub1txwy7guqkrq6ngvtwft7zp70nekcknudagrvrryy2wxnz8ljk2xqz0yt4x guide https://www.youtube.com/playlist?list=PLCRbH-IWlcW2A_kpx2XwAMgT0rcZEZ2Cg

This is definitely not a 1-click/1-step solution. But you're crazy smart and the guide is really good. Let me know what you decide to go with.

Personally, I think nostr:npub126ntw5mnermmj0znhjhgdk8lh2af72sm8qfzq48umdlnhaj9kuns3le9ll is great. It is GUI-based, but letting them handle the software packages is super convenient and reliable. Good luck!

The actual "thing" with lightning is that the whole thing is the biggest kludge in the history of kludges. It's a Rube Goldberg contraption bolted on top of an experimental, unoptimized protocol. It was from the start the wrong solution to the right problem.

There, I've said it. Give me your hate zealots.

I run graphene.

I have orbot running on my phone but not in VPN mode. And I use Amethyst with it set up to connect via Tor through orbot's proxy on port 9050. (Thanks again nostr:npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z for adding that)

It works ok - well enough for my purposes. It is much slower than a direct connection and some events and images, videos etc don't download because a lot of stuff on the internet blocks traffic from Tor exit nodes because a lot of idiots do idiotic things through Tor.

On graphene, I use Google Gboard with zero permissions granted: no network, camera, contacts, etc. I think in this state it can do no harm but it works way better than any of the oss keyboards I've tried (and I've tried many).

Consider the hypothesis that the interests that control news media content are in favor of a global panopticon.