o8o 
                                `"' 
ooo. .oo.  .oo.    .ooooo.     oooo 
`888P"Y88bP"Y88b  d88' `88b    `888 
 888   888   888  888   888     888 
 888   888   888  888   888     888 
o888o o888o o888o `Y8bod8P'     888 
                                888 
                            .o. 88P 
                            `Y888P  

~~ who ~~

Honestly? I don't know.

It no longer feels like it's my place to say.

I'll leave it for you to decide.

~~ communicate ~~

one-on-one moj@sdf.org
soapbox @moj@mastodon.sdf.org
hotline SDF Phone x2239

RetroShare

Published: 14 Oct 2021

For an person prone to abstraction, there’s little more baffling than chat implementations. It could be extended to voice and video calls as well – after all, what major company doesn’t have some offering these days – but for now, let’s stick with chat. Consider:

AIM, Bonjour, Gadu-Gadu, Google Talk, GroupWise, ICQ, IRC, SIMPLE, Sametime, XMPP, Zephyr.

That list alone comes from Pidgin (https://pidgin.im/), a single chat application that tries to run them all. Go further, though. Think: Twitter, Facebook, Instagram, Diaspora, Freindica, Mastodon, Pleroma, SMS, iMessage, Session, Semaphore, Signal, WeChat, Element/Matrix, Threema, Telegram, StealthChat, WhatsApp, Wickr, Viber, GroupMe, Tox, Slack, Discord, Hangouts, Messenger, …

You’d wonder if consumer technology was used for anything except for this. Are you working on a new chat app? A new architecture for a chat app? Trying to make them interoperable? Trying to make users discoverable? Trying to make the signal channels more secure? Maybe you actually are doing something else! Don’t worry: it’s just a matter of time until someone presses you to make it “social”…

Anyway, if you’re a truly abstract thinker – maybe a systems engineer or architect, a systems integrator, a requirements analyst, or some othe individual charged with decomposing things or putting them together – this is where you know to keep you mouth closed and slowly back away. Why? Well, you know The Truth(tm): The are all the same.

Sure there are a couple of variables – a Chinese Menu of options: Public or Private? Group chat? Encryption? Presence? Both parties online? History storage? Searchable? Plain text? Rich text? Multimedia? Amplifying, repeating, alerting? Threading? …

Special sauce, huh? Sure. You want fries with that?

It’s tiring, but somehow it never gets old. It sure sells cellphones, though, no?

Anyway… RetroShare:

It uses gpg-based public key for identity. You advertise your identity, location identifier, and public and private ip addresses and ports to your peers. Yes, you explicitly tell them who you are and where you are. You must affirmatively confirm each other as friends. Afterward, you may have access to friends-of-your-friend and vice versa.

The service relies on hole-punching out through your firewall so that messages can come back in to you. If you’re in a fixed location on some network and you have access, you can make that nicer via port-forwarding to your client.

If you want to to hide your address, there’s Tor and i2p. From the Tor perspective, if you’re also running Tor locally (i.e., Tor SOCKS proxy), your vanilla “node” can talk to a Tor node. As you’d expect, Tor nodes (hidden services) can only initiate contact to other Tor nodes (i.e., no exit node use).

What does it try to do? Instant messaging, presence, broadcast & group chat (IRC model), file sharing (like bit torrent), in-network email (seriously, theres’ an email client window), forum posts(?), and others. It’s the kitchen sink – the whole shebang.

Technically, if it’s doing anything unique, it might be that it’s trying to do that server job that can be daunting to set up if you lack the skills, and for that matter it’s trying to do it like you’re just a client – assuming no access to the firewall, router, DNS, and so forth. Technical folks know that that is just shifting the burden to somewhere else – in this case, it’s to the user with the funny “ID” values (containing your actual ID information as well as your network addresses). I expect that as you move from location to location (i.e., from network to network), that probably becomes tedious quickly if you want to add people outside you clique or if multiple nodes are mobile. There is some kind of extra routing and discovery going on in there – I’ll know more soon enough.

And to be sure, until you’re peered with some friends, figure it’s a lonely app. I haven’t checked yet if there are larger, populated open servers hosting larger groups yet. Why not? Well, installation had a few issues… and documentation was a bit behind, and … and … and.

But in the back of my abstract thinking mind, I know I should probably just be quiet now and step back slowly. I’m not sure who this helps. I’m not sure it makes life easier. I’m not sure it fills a gap. Who knows? It’s TBD.

If you want to give it a go, let me know! You know, through some other means of contact… because I’ll have to start up the VM and the service, check my current ip addrs / user address, share that token with you out-of-band (since we can’t communicate until we’re both mutual friends), …

Like I said, I’m going to be quiet now :-p

https://retroshare.cc/