4 ms·
This is the first time I've heard of this, there just seems to be a bunch of holes in it. OK, so you have a basic embedded-style ROM vm with a light layer of ap
by xemdetia 10y ago
This is the first time I've heard of this, there just seems to be a bunch of holes in it. OK, so you have a basic embedded-style ROM vm with a light layer of application code above it. Hard, solvable problem that they seem to have covered.
If it is supposed to be for the people how am I supposed to find a route between hosts behind a NAT? Is this galaxy.urbit.org the DNS and the TURN relay? Is the expectation of the 'server cluster that is yours alone' still dependent on someone else running the relay? How can my servers have friends that aren't part of my trust network? How do I run my own trust network between people I want to trust?
The weirdest thing is that there doesn't seem to be a designed way for an operator of an Urbit to talk to their/other Urbits. Where's the classic plain text protocol to at least say HELO? How do I fix it?
This just ends up looking like a specific-use estoeric lang + runtime to me, which I do enjoy as an exercise. I just can't see how the UX problem is going to pan out based on what is presented.
- urbit 10y agoA planet, like ~tasfyn-partyv, has a parent chain going back to the galaxy: ~tasfyn-partyv (32-bit), ~doznec (16-bit), ~zod (8-bit). zod.urbit.org is directly DNS mapped. Not using TURN and STUN specifically as the RFCs, but in effect it's the same. Routing will STUN (establish a direct peer-to-peer connection) so long as either side has full cone NAT. As a planet, you need some star to route for you. Right now, the network is small and friendly enough that trust problems aren't an issue. As we grow, we'll put in an escape protocol so that you can switch stars if you have an issue -- there are 2^16, after all. Urbit is not PGP. It's designed to feel more like the early Internet, ie, a wide-area world of nontrivial default trust. At present, it would be foolish to go full cypherpunk, because we're a long way from being worth attacking. Hoon is unusual, but I wouldn't call it "esoteric" -- that term is reserved for languages which genuinely don't care about usability.
- xemdetia 10y ago> Urbit is not PGP. It's designed to feel more like the early Internet, ie, a wide-area world of nontrivial default trust. At present, it would be foolish to go full cypherpunk, because we're a long way from being worth attacking. It's not as much that. If I am going to be owning a service that I want to use among my peers generally someone has to run the thing and generally I am that person. If I am relying on urbit.org then the goal described in this overview of "Your urbit presents your whole digital life as a single web service. And since it's yours, open source and patent-free, it never shows you ads. Or loses your data. Or updates without your consent." is not met. If urbit.org is so entrenched and the galaxy lookup so well defined how do I use this when you are gone? The galaxy lookup is clearly one of the most critical pieces of the design yet seems the most weak. In the world of online games the lookup service is what has a community live or die, and I did not see a better answer after writing the comment. It seems that the only way is to recompile and distribute an alternate version of the software. > Hoon is unusual, but I wouldn't call it "esoteric" -- that term is reserved for languages which genuinely don't care about usability. I would class it as such because there doesn't seem to be a description (going by the whitepaper) of modularity/code layout/best practice sort of thing. There is also the complexity of symbol management from bash/perl/php land that seems to be in Hoon too. I work with grammars all day and I guess I was just looking for a more formal description of the language.
- urbit 10y agoYour question about the lookup service is an excellent one. One: it costs 20 bucks a year to run urbit.org in its capacity as a DNS server for binding 256 names to IPs. Two: at present, there are about 50 galaxy holders, so if between them they can't scrape up 20 bucks a year to keep urbit.org registered, Urbit has worse problems than centralization. Three: the use of DNS as a root routing table is an implementation detail in the Unix process, completely isolated from Urbit. When Urbit wants to route a UDP packet to galaxy X, it routes to the reserved range X.1.0.0. If the DNS itself collapsed, we could probably find other ways of mapping this table. I would not call bash/Perl/PHP "esoteric" either -- it has a very specific meaning: https://en.wikipedia.org/wiki/Esoteric_programming_language https://en.wikipedia.org/wiki/Esoteric_programming_language Hoon is a little under-documented and should have its grammar specified somewhere, although the easiest way to do so would be just to clean up the Hoon parser (a parser combinator written in Hoon). (The original plan was for the Hoon parser to look as pretty as a spec grammar, which many parsers in Hoon do. But looking at ++vast in hoon.hoon, you'll see we fall a little short of that goal.)
- chc4 10y agoUrbit's network is federated, not decentralized (although it could be). Currently, you get a planet under a star under a galaxy. Galaxies are all discoverable under galaxy.urbit.org, and have a hard-coded public key in the kernel. If I start up a planet under ~doznec under ~zod, and I want to talk to someone else, I first check if I already exchanged public keys with them and know their IP address. If I don't then I ask ~doznec (my parent). If they don't know, I ask ~zod. If they don't know, then I ask the galaxy that is the ancestor of the person to route me to the client, either on my behalf if I'm behind an extremely restricted NAT or just send me the IP and let us handshake. Galaxies are essentially root CAs. There are also unknown, reputationless urbits called "comets". Their names, instead of being a number that maps to their hierarchy in the network, is the hash of their public key. This way, if you send a message to ~some-commet you are essentially using a pinned certificate. You still use ~zod for the initial sync of urbit files and TURN in the case of NAT, however. I don't see any reason why this can't become a DHT instead of using ~zod, however. You can verify peers public key out of band if you want, or even add the peer to your known ships list manually if you are paranoid. You can even change the hard-coded galaxy keys in the source code, and then spin up your own galaxy...it just won't be trusted by anyone else on the network, and is probably a bad idea. I'm not really sure what you mean by "classic plain text protocol"? Urbit builds its own network stack on top of UDP, that provides "exactly-once"(ish) messaging. All messages are just Nock nouns sent over the wire, with native support for RPC messages. You can just run `|hi ~haptem-fopnys "how are you?"`, and we have an IRC simulacra called :talk that you can switch to with ^X (type `;join ~doznec/urbit-meta`