omg. OMG. **OMG!!!**

Okay I know this sounds like nonsense but oh my god! Captp + handoffs on three *independent* peers over tor onion services, with everyone chatting over goblin-chat!

Each user has their own address on the p2p network! *No* central server!

This is HUGE!

If it isn't obvious why this is huge, and I guess my post doesn't make it obvious:

This is a completely peer to peer, end to end encrypted chat system written in *250 lines of code*. @spritelyproject's Goblins abstracts away the network/cryptography elements for you.

Oh yeah, and if you're *still* not excited yet, let me explain this to you in other words.

Once this is out, the real fun thing begins...

A distributed, federated MUD.

No really. For real.

@cwebber Holy shit. The progress you've been making is so rapid. This is so incredibly exciting! 😃


yeah sure. nice proof of work, but

1. its still much easier for me to explain my mother how to use my matrix server

2. clearnet is by design more reliable than tor (1 known-good tcp/ip connection vs 3+ unknown connections in sequence)

3. clearnet is by design more performant than tor (1 known-good tcp/ip connection vs 3+ unknown connections in sequence)

@mk @cwebber clearly this wasn’t intended to demonstrate a use case for your mother

@codeforchaos @cwebber

"my mother" is a metaphor for regular non-techi people.

there is much more of them than us and if you want to make a change to privacy in the world, you have to build technology that they can use.

@mk @codeforchaos I have a pet peeve against the "mothers don't know how to compute" meme.

I happen to have a lot of programming friends who are also moms these days. I get frustrated on their behalf every time I hear this come up.

@cwebber @mk @codeforchaos One of my boomer relatives is a mother, and was also an application programmer and database administrator before retiring. She's not as savvy as some of the younger developers, but no one has ever had to fix her computer, nor will she let them try.

@cwebber @mk @codeforchaos Point is: age, gender, and number of children do not necessarily determine ability to use a computer.

Look at how many millennials and zoomers are "computer illiterate", where even mobile platforms are intimidating if they get outside their comfort zones.

@cwebber @mk @codeforchaos I am a programmer, taught by my mother, who was arguably second-gen if you count industrial robot control circuitry and looms, and my daughter who calls me mom will learn from me. So, thank you.

@cwebber @mk @codeforchaos (I also have a positively annoying time wasting my hours retraining on tech update that could have just kept the old standard shortcut keys.)

@mk @feonixrift @cwebber @codeforchaos

If we generalize the discussion at bit once more. Anyone who's willing to lower the barrier to entry to using, adopting, implementing and extending our #fediverse technology base for people from all walks in life and across our globe, is most welcome to join #SocialHub and participate in doing so.

There's tons of things to be done, between deepest tech levels and easy-to-use, unobtrusive experiences offered by fabulous apps :)

@cwebber I present my mother. She's capturing electrophysiological data from shrimp on the PDP-11.

@cwebber @mk @codeforchaos That’s why I just use the phrase ‘normies’ instead, doesn’t discriminate.

@cwebber @mk @codeforchaos yeah i feel like this finally died during the zeros but the "explain it to your mom" attitude really bothered me back then too

my mom taught me how to use an ibm-3270 text editor for fortran. "explain it to my mom" always consists of me explaining what's *new* since then, nothing more

@mk @cwebber
yes I know what you meant, and I replied in kind

but you have to understand that a threat model varies from person to person. Most people will happily settle for Signal or iMessage since those provide e2ee and that's probably good enough for their needs.

e2e encrypted p2p chat over tor probably fits a more serious threat model, and those who qualify for such a threat model will absolutely learn the technical skills to stay safe.

Not to mention that most technical hurdles can be abstracted and polished away for the end user, e.g. if you just consider e2ee as such, it is a complex technical mechanism that comes with caveats, but in many programs those are clear enough and the program polished enough for general consumption.

But polish and general consumption aren't the focus of a proof of concept, as you are surely aware.

On a separate note, your objections look orthogonal to the stated design goals in OP, so they don't look too relevant.

@mk @cwebber and clearnet is by design easy to connect to --- except for the ?&!# NAT-traversal and unreachable ipv6-addresses (?!?) and strange port-blocking, and …

Connecting a p2p-network over Tor is *easier* than connecting over the clearnet.

And yes, that’s crazy.

@ArneBab @cwebber

thats why there so much server/client und less peer2peer services.

the trend is going towards federated services (mastrix/mastodon/peertube) based on server/client.

@mk @cwebber Yes. NAT really hurt peer-to-peer.

But I think the reason for more federation is rather that users don’t need to install anything. And creating something that can be installed cross-platform is pretty hard.

But at least the peer-to-peer part only needs to be solved once. If you have a programming language that solved the problem (similar to WebRTC, but maybe simpler: you only need the messages part), then peer-to-peer becomes much easier.

@mk @cwebber Also keep in mind that most working and debugged peer-to-peer software that was run on user-machines was killed: Skype was bought by Microsoft and the file sharing networks were destroyed with lawsuits.

@mk @ArneBab I know a thing or two about the trends of building federated services


a Discworld MUD exists and I've just known about its existence?

Oh my!


Not only does it exist, it is also really gigantic. AnkhMorpork alone dwarfs most other MUDs :-)


Question. Is TOR necessary for the p2p end to end encryption?

Can it also work using federated networking (while still encrypted either end to end or end to server)?

I feel like I have so many questions but it's still not clear for me so that I can't actually formulate any.

For starters, I presume the TOR thingy is something like a plugin for your system? Can we use any other implementation, say... I2P, or maybe a different p2p network using kademlia DHT, or whatever?


@yuki @cwebber @spritelyproject I'm not sure if there's native transport layer encryption, but AFAIK you can swap Tor for any other network. Tor just happens to be the easiest way to make a computer accessible from the internet.

@yuki Hi! This is a good question and it's come up a bunch of times... it's a good one to answer!

No, Tor is not *required* for network communication in @spritelyproject. It just so happens that Tor Onion Services are an easy to use and set up p2p system that do NAT traversal, so they are the first one being demoed.

The "Machine Transport Communication Layer" is an abstracted interface, Tor is just one of many. You could use DNS + TLS or even carrier pigeons with encrypted microsd backpacks.

Ah, glad to know!

I've read a bit of the docs. Do you have any videos where you explain the actor model more thoroughly?

(I think this is where most people get confused because it sounds like arcane magic; it's a whole new paradigm - similar to what OOP or event-based programming were for old school programmers.)

I'd love to see a presentation where you explain your multi user chat from the API client viewpoint, and later you explain the basics of how you implement it over TOR or whatever.


@tychi @spritelyproject Not yet, sadly.

It could happen via a few paths, though (captp + agoric, spritely on Racket/Guile -> WASM, etc)

@cwebber @spritelyproject I'd be interested in helping to explore bridging that gap.

I've been working on a lightweight UI framework. Vanilla JS MVC style in < 200 lines that does what React+Redux does, but without any npm and such.

I know you're working on the underlying infrastructure for the Oasis, so I've been trying to tackle the front end for web, in addition to a lot of my other use cases.

This is a sample PR where I added support for Reddit:

I'd imagine to interface with WASM in this paradigm, I'd call out similar to the `fetchPosts` function to getting reddit posts. Merge the latest chat messages into the state and it'll be available in the UI.

Embed the chat anyhere with like:

<goblins-chat id="some-id"></goblins-chat>

And that would render the UI from your screenshot.

I'm still in the early days, so documentation is lacking...

@cwebber Now, if you want a _real_ challenge, get that working over Freenet! 😜

@cwebber @ArneBab I will say that anything will likely be better than my experience with FLIP. It's impressive that it works at all, but like a lot of things built on Freenet, it's just such a hard sell to "normal" people.

@smartyhall @cwebber Yes — there are so many things that are stuck in the proof-of-concept stage.

I guess that’s mostly because the people who build stuff in Freenet are interested in the technology, and few have the interest both in the tech and in making something enjoyable.

I hope that the mobile node will help with that:

@smartyhall @cwebber (but you know the timeframes of my plans. Yesterday we finally got streaming-over-freenet-in-the-browser towards which I had schemed for … half a decade or so?

@cwebber @ArneBab That's working now!?! I'm impressed, and given the things I've seen you pull off, that says a lot!

@smartyhall @cwebber yepp, that works now. It’s still a hassle to create a streaming site (except if you have shell- and ffmpeg-foo or just copy from sites of others :-) ), but you can now open a freesite and directly click on an audio- or video-tag that points to an m3u-list to watch a stream.

@smartyhall @cwebber if you run #Freenet and go on a site like http://localhost:8888/USK@4DQ15JpGlVGDdyXvQE3Egz7SLK2TzMAUmp~aptnwyt4,ljFASreV8AHaQhscfrNLuVyl3qksltgP9sndtLuUHB8,AQACAAE/stream-radiocc-freenet/3/

it takes around 5-10s to load the start of the stream — not much longer than it would take to open a youtube-page (I just checked: youtube takes 3 seconds until I can start the stream).

@smartyhall @cwebber I just measured it again on an empty Freenet node: Opening http://localhost:8888/USK@4DQ15JpGlVGDdyXvQE3Egz7SLK2TzMAUmp~aptnwyt4,ljFASreV8AHaQhscfrNLuVyl3qksltgP9sndtLuUHB8,AQACAAE/stream-radiocc-freenet/3/ takes 22s from clicking the link until you can listen to the audio-on-demand stream.

(note: not a live-stream, this is audio-on-demand (video also possible, but low quality for now). Livestreaming needs more testing to see its latencies and required upload bandwidth)

@ArneBab @cwebber That's beating the speed of YouTube back in the day on my slower DSL connection, and it's loads better than anything back on 56k, but that still got people excited.

@smartyhall @cwebber The next step would be to add support for ogg opus and vp9 or av1, then we’d have live-streaming audio and HD video-on-demand streaming (because those codecs are much, much more efficient than ogg theora with ogg vorbis).

But at least vp9 and av1 are a lot of work.

@ArneBab @cwebber At least this gets it down to _just_ making the filter support those formats, right? I wonder if it would be possible to get this to interface well with that DIY streaming platform I discovered recently. Owncast, I think it's called….

@smartyhall @cwebber yes, it "just" needs filter support.

My current approach is to pre-create an m3u-list with known filenames for segments, then upload the m3u-list and upload the fragments to the known filenames as they are encoded.

Sign in to participate in the conversation

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!