Lots of exciting #decentralization protocols and technology out there. Some are not ready for usage, others are not following the paradigm I prefer, I love that we're spoiled for choice.

IMO I still love #SecureScuttlebutt, for me it is still the best offline-first local-first gossip protocol out there. Yes, it has dangerous corners and design issues, but it works and I can build apps with it for my friends.

I find it has pretty intractable scaling problems. So like... it works... at first. But gets bigger and slower pretty much exponentially. What was that non-blockchain network... Briar I think?

https://briarproject.org/
Secure messaging, anywhere - Briar

Secure messaging, anywhere

@cy
> What was that non-blockchain network... Briar I think?

Briar is a neat experiment, but they've never shipped apps for anything but Android. The problem with depending on one proprietary OS ought to be obvious, Goggle's recent decision to start farming Android app devs is a good example;

https://keepandroidopen.org/

So until it's cross-platform, Briar is a fun toy, but not suitable for production use.

@soapdog

Keep Android Open

Advocating for Android as a free, open platform for everyone to build apps on.

Can't say I've looked into it before. I got tired of nodejs projects back when they switched to the new module format. Good to know, at least!

In my opinion, a good project would write programs, not "ship" "apps." Dunno what one would be good though.

CC: @[email protected]

@cy
> Dunno what one would be good though

Depends on your use case/ threat model. Ask yourself questions like; who do I want to communicate with and why? Are you looking for software for an existing group/ network of people who can make and action decisions about where to communicate? Are you wanting to adopt an app to make new contacts among its current network? How sensitive are the communications? Etc, etc.

@soapdog

I just use the Fediverse, nothing else seems worth bothering with. I kind of gave up a while ago. I don't have an existing group, or anyone at all really. Met some nice people on the Fediverse though. (None of them are interested in whatever network I might propose.)

CC: @[email protected]

@cy
> I just use the Fediverse, nothing else seems worth bothering with

Same. Other than email and SMS, and occasional use of Matrix and even less often XMPP.

@soapdog

@strypey @cy the fediverse is indeed cool, but it is not the p2p I aim for. It is very costly to run an instance in terms of bandwidth and also it is server to server and that is just federation, which is cool in its own way but not comparable. It has the best of both worlds and also the worst.

@soapdog
> the fediverse is indeed cool, but it is not the p2p I aim for

Pure P2P networks have been the holy grail of every new generation of cypherpunks since the 90s. They've never worked out. Everything that's turned out to be practical for use beyond dogfooding has some kind of supernode, and that's not even a bad thing;

https://bridgeseat.substack.com/p/in-defence-of-servers

> It is very costly to run an instance in terms of bandwidth

If you use Mastodon, sure. There are much more efficient fediverse servers.

@cy

In Defence of Servers

Why pure peer-to-peer networks aren't always better than federated ones

Bridge Seat Cooperative

@strypey @soapdog @cy

dat works now.
ppl keep ignoring it, but its battle tested and mature.

@serapath @strypey @cy

Just read the thread and there are many good points in it. As I said before, I'm not here to attempt to convince any of yous or have a flamewar.

I disagree with many of the view points expressed in the thread around terming SSB as dead or extinct and claiming it is only valid if old time developers are still present. Don't forget, I wad there from the start as well. Find it mildly annoying to see it called hobby even if it was not intentional.

@serapath @strypey @cy

SSB worked back then and still works now. It has more features now than it had back then.

I also think that people in this thread are pushing requirements and constraints in SSB that were NEVER a part of SSB protocol.

SSB is a network for connecting friends. It follows the same semantics of real life social interactions and groups.

It has never been a privacy oriented protocol for adversarial situations.

When I tried it a... while ago, SSB worked fine, but slowed down and started doing a lot of disk grinding as the database grew to multiple gigabytes, and you couldn't clean out any old posts. Took a while, so many people probably haven't run into that. I also may have been doing something wrong.

CC: @[email protected] @[email protected]

@cy @serapath @strypey you are doing nothing wrong, this is a limitation.

It uses a lot of disk space so it can be offline first. You have all the data. It shouldn't become super slow forever. On the new version, I added a better search engine but it takes a while until it indexes everything and also it takes longer to load on launch, but once it is running it is very good.

You can't delete cause you can't modify the signature chain. That is the secure part of secure scuttlebutt.

(1/2)

@cy @serapath @strypey

most of that data are actually blobs, which are images and other attachments, those can be deleted and will be fetched again from the network if needed.

I will add a blob manager in the next version.

@soapdog @cy @strypey

i love ssb.
i just wish p2p enthusiasts would embrace it to rebuild ssb just the way it is, but now you can sync only the tip of feeds and drop old data because it inherently supports sparse but verifiable replication, which would alleviate one of ssb's limitations

Do you have any documents on that? I can't figure out how it would be possible.

CC: @[email protected] @[email protected]

@cy @soapdog @strypey
//A.js
swarm = new Hyperswarm()
store = new Corestore()
feed = store.get({name:'ssb-feed'})
console.log(feed.key)
swarm.join(feed.discoverKey)
swarm.on('connection', socket => feed.replicate(socket))
feed.append('hello')
feed.append('world')

//B.js
swarm = new Hyperswarm()
store = new Corestore()
const [,,key] = process.args
feed = store.get({key})
swarm.join(feed.discoverKey)
swarm.on('connection', socket => {
feed.replicate(socket)
console.log(feed.get(1)) // world
})