107 karma · joined March 19, 2010
> A program is monotonic if, when you run it on a subset of its inputs, you get a subset of its outputs. As you run it on more data, the set of true things may grow, but it never shrinks.
Yeah, this framework seems powerful.
Something I find interesting is that you can get monotonic (and therefore coordination-free) relaxations of arbitrary problems. In extremis, you can derive a relaxed version P' thus
P'(S) = {<s, P(s)> | s ⊆ S}
and now
P'(S) ⊆ P'(T) if S ⊆ T for _any_ (well defined) P
This seems tautological but in some cases a relaxed version is good enough: it gives you convergence and eventual consistency in a coordination-free setting, at the cost of maybe having to roll back some results. And when it doesn't, it gives you a coherent model of what to make of the situation until coordination yields a definitive answer.
I wrote about this idea here: https://www.hyperhyperspace.org/report.html#conflict-resolut...
But that was like last week, haven't really put this in practice yet.
In those examples what is being processed are partially-ordered operational logs, but it's essentially the same (just that whenever S ⊆ T there, what you're seeing is an extension of an op log, which is a bit more intuitive).
Maybe BlueSky could offer a registrar that would do steps 1 & 2 for you transparently upon domain purchase.
That's interesting!
And you're actually following the DID. I wonder how you present this to folks so it's understandable.
May be an entirely different thing this time of course. But still...
(specifically, the data representation part)
I work on this [1], it kinda looks like systems software, and it doesn't feel stagnant. But then, nobody uses it (yet - I hope).
And there's a plethora of similar ideas (DAT, OrbitDB, etc.).
That means that one can write formulas quantifying only over numbers (that's what's done for the axioms defining addition and multiplication), but in order to get recursion, one needs to use infinite many axioms, one for each predicate P, saying:
if P(0) and (∀n)P(n) => P(n+1) then (∀n) P(n)
Intuitively, this gets us that all the numbers that can be reached starting from zero by using the "+1" operation will follow the rules of arithmetic.
But it does not guarantee that all numbers _can_ be reached this way. In the standard model, the one we have in mind, that is the case, but it turns out that there are constructions like this
0, 1, 2, ... -2', -1', 0', 1', 2' ...
having numbers that came after the ones in the standard model, but that cannot be reached by applying "+1" a finite number of times, where all the axioms of arithmetic are also true, and are therefore also models of arithmetic.
Some formulas are going to be true in one and false in the other, but all those are independent of the axioms of arithmetic. The study of formal methods in mathematics and their limitations is truly fascinating.
The path for mass adoption of the new, p2p and interoperable technologies is the same: make them work on web browsers (using the browser as a full peer, not a client). It is the ubiquitous VM: JavaScript, WASM, IndexedDB, WebRTC+WebSockets, all the pieces are there.
The building blocks for a representation / data model are all in the air as well: CRDTs, Merkle-ized structures, content-based addressing, etc.
I'm a believer.
I'm finding it painfully difficult but it is evolving steadily.
It is also designed to work in a Byzantine environment (it can run inside a browser, using WebCrypto, WebRTC, etc. to connect to untrusted peers over the open internet).
Think of having a Facebook-like social graph, not controlled by Facebook. Or a merchant aggregation system like Amazon's without Amazon. A system not driven by maximizing exposure monetization (via ads, paid placement, etc.) but by something like a Nash equilibrium that maximizes value creation for participants.
This is what I work on, and I think it can be done.
The problem is commerce (Amazon et al), search (Google), social (Facebook), etc. or, in general, the information layer built on top. David Clark said (in 1992!)
"The network as an Information Mesh. An old goal, not yet achieved."
The information theoretic and algorithmic ideas have matured (in no small part due to cryptocurrencies, yes, among other things).It's time to build that information mesh. I want a social identity that's not tied to a particular product/company. I want to shop online using a distributed protocol where reputation is independent of the platform. I want a search engine that can validate the identity and verify the integrity of the content it indexes. We can build such a thing now.
In general, what they do with infra, we do with cryptography & datatypes.
[1] Hyper Hyper Space: https://www.hyperhyperspace.org
[2] HashedObject: https://github.com/hyperhyperspace/hyperhyperspace-core/blob...
There are other projects that take an approach similar to what you're describing (Automerge and its derivatives, mainly).
I guess there is a distinction between distributed databases and permission-less p2p applications. Having a data center where you can trust the compute nodes running your distributed database is very different than having random untrusted peers over the net. But maybe data validation can be done in a less intrusive way, something like what Automerge does for JSON merging (maybe in a typed setting?).
That said, hyper-hyper-space is still work in progress, once we have a proper library of container types programming will be a bit more intuitive. Or so I hope, at least.
For example, here I use a merkle DAG-based file format to represent CRDT-like types:
https://www.hyperhyperspace.org
The resulting abstraction can be universally looked up using a hash (or short sequence of words), can be modified offline and synchronized flawlessly. It's still WIP (for example, you still can't export it to an actual file, hehe).
I'm working on an open-source implementation of this idea at https://www.hyperhyperspace.org
The handful of platforms we use to actually interact with each other over the net, on the other hand, have taken over the web. There's little competition, and most are on the verge of government intervention.
It's the other way around: the Internet needs to be rescued from the web.
Duck Duck Go doesn't come nearly close to the kind of reach Google has.