4 ms·
The second part of the talk is close to what I want, but they're missing a few parts. I want to set up a DNS-like system, where I have some pub/private key pai
by VikingCoder 5y ago
The second part of the talk is close to what I want, but they're missing a few parts.
I want to set up a DNS-like system, where I have some pub/private key pair to control which servers you can find me at. My friend Tom sets his up, too.
Then I want to tell the Service Host she's talking about, "Here's my friend Tom's public key. Please look him up in the DNS system, and find out how to reach one of his hosts. Let this new Service X, talk to Tom. Use something like Wire Guard to establish a connection directly from this wasm Service X that I'm running, to a similar wasm service X that Tom is running. We're going to send proto messages (not streams!) back and forth to each other, and you're in charge of connectivity."
Give me that, and the ability to talk to, I dunno, Redis, SQLite, MongoDB, and/or maybe Firebase, and I think people could make some really amazing federated or P2P social apps with a very, very small amount of code.
I picture writing a Front-end UI on Flutter that talks to a Back-end like I describe.
PS maybe someone could make a WASM-first (no Dart) version of Flutter?
- lifty 5y agoYou can achieve that using Handshake, which is a blockchain based replacement for DNS + PKI.
- zcw100 5y agoOr you could use IPFS with P2PConnect where you can look them up by public key and completely skip DNS.
- tedunangst 5y agoThis seems like a not that complicated library on top of what fundamentals actually need to be built.
- wahern 5y agoMost of this is feasible today using Opportunistic IPSec. What's missing is the high-level (Redis, SQLite, MongoDB, etc) application interfaces you're hinting at. Opportunistic IPSec operates at the IP layer, below all of that. There are BSD socket API controls for IPSec, but Opportunistic IPSec was mostly intended to be passive except for an application (optionally) requesting or verifying that a data stream is protected. Unfortunately, Opportunistic IPSec failed miserably at widespread adoption. The same fate is almost certainly waiting for any similar all-encompassing approach. Wireguard doesn't really help as the vast majority of the complexity and pain exists above the level of the basic stream encryption. (Supporting schemes like Opportunistic IPSec is one reason why IPSec permits direct IP-to-IP encryption without tunneling or layering. One of Wireguard's simplifying assumptions was that it would be used to create VPNs and tunnels; TLS had won the day as a solution for direct, end-to-end encryption.)
- VikingCoder 5y agoThanks for your comment. I kind of feel like you and I are talking past each other a bit. (And the fact that I don't know any of the technical terminology doesn't help me at all, here.) I want this Host program she's talking about to be trivial to install for some random end user. And then that user can pick my App from some App Store interface, similar to the Demo in sandstorm.io, and then add Contacts, and then give my App permission to talk to some of their Contacts. So, the Host program is super sandboxed, and capability-model based... And I'm also asking for the Contact Management DNS Connectivity system, which I imagine feels roughly like setting up a public/private key pair with PGP, and then feels roughly like setting up a Dynamic DNS. I don't actually care about specific ports, and how they're actually encrypted, etc. It could connect over WebRTC for all I care. Yes, TLS might work. I hear NAT traversal is a problem to connect peer-to-peer, and I barely know what I'm talking about. I want the Host / DNS / some minimal central servers to take care of that for me. I feel like the DB interfaces are slightly higher level than the stream level access she was talking about, and would make it slightly easier to do some of the cool stuff I envision. But I feel like providing DB Capabilities is a pretty low bar - it should be relatively easy to do, right?
- lewisjoe 5y agoI'm working on a proof of concept React-ish UI lib powered by WASM. My goal was to make it truly cross platform, for example it should generate ui markups on a headless server as well