Hacker News new | ask | show | jobs
by chc4 3198 days ago
I'll admit, Hoon is weird. But complaining about Nock is like complaining about the JavaScript VM. You can JIT it and replace common functions to replace with calls to C functions instead. Nock defines the /results/, not how to get them. Jets are basically just because the Nock spec didn't want to have to outline a bunch of primitives that don't really matter, since they would be replaced with native calls anyways.

As for ideological views: there are 4 million planets. They are, essentially, houses, but each one of those planets can also issue 2^16 "moons", which can themselves be their own people. I don't know the reasoning behind why 2^32, but I'm also not going to ascribe the reasoning to human worth any more than I would the author of IPv4. There are also 2^64 comets, which are their own ships outside the trust heirarchy, which really just means that they have a default karma of 0 because they have no cost, and so can be Sybil attacked - not that they can never get a positive karma, or that you couldn't use one indefinitely instead of a planet (just that it's be unwieldy). Saying Urbit can't scale bigger than IPv4 is kinda like worry that Hoon can't be programmed in Chinese - there are probably bigger problems, and it could be solved by just doubling the amount of galaxies. Hell, Urbit is open source. There would be push back against doing it, but there is nothing stopping that from being patched in tomorrow.

The most common thing I've see n called fascist in Urbit is it's identity system, and this Urbit+Ethereum spec seems to be a direct solution to some of it. Now, even buying a star you don't have to trust the owner of the galaxy you bought it from, because it's a redeemable token.

2 comments

Whoah, hold on. I hate to zoom in and nitpick, but I'm not guessing when I provide that reason for the 2^32 bit address space. It's the official stated answer from the project itself.

And I'm not saying the problem with that design decision is that it's amoral (let's stipulate that it isn't). I'm saying that it's extremely unconventional, a landmine of orthogonal ideology buried in the architecture of the system. Before committing to building a new product in someone else's framework, I'd want to know about all such weird decisions, and about why they are that way. Maybe Urbit's principles are compatible with the way you think about every possible aspect of how your system will interact with any of its users ever (since that's what you're buying into when you literally adopt an entirely new network to build against and deploy on). But maybe not!

Most framework designs coercively project opinions about whether the efficiency of register-sized addresses are worth the flexibility tradeoff, or whether it should be easier to define new URL patterns versus making it easier to dispatch the full complement of HTTP verbs, or whether closures are first-class or sum types are worth the complexity. Not a lot of programming environments ask us to determine what double-digit percentage of the world's population is too irresponsible to deserve an address. Again: their words (almost; I changed the order).

I'm trying to be careful not to use loaded terms like the f-word you just used, by the way. What I think about Urbit's founder is not necessarily the same as what conclusions I'd draw about this particular system, which is, I think, fatally flawed on its own demerits.

I haven't seen that as the reason behind it (something about 4 billion planets being a good limit, maybe), and assumed it was hyperbole.

2^32 "houses", even if it was ideologically motivated, is a design decision that makes sense at first glance, is easily worked around (and was designed that way), and can be trivially changed. Some of Curtis' politics were visible in the Urbit first draft (naming galaxies after ancient rulers being the most egregious...), and both weren't important and have since been changed.

Thinking about it, 2^32 planets is one of the only weird design decisions that /would/ be ideologically motivated, other than the general dislike of Haskell or UNIX that birthed it. All of Hoon and the kernel are basically built from Nock first principles, which is both insane to read and amazing, and I'm not sure that you can say Curtis' ideology is the DNA of them. Urbit has tons of weird things in it that could make you drop it (like all of Hoon, even though most of it does make sense and is easy to learn, I promise! I'm not crazy!), but I don't think Curtis is the fatal flaw.

> I'm not guessing when I provide that reason for the 2^32 bit address space. It's the official stated answer from the project itself.

Link? My understanding was that the official answer was "there should be about as many urbit addresses as adult humans so that they're too expensive to spam from, and if urbit is ever so wildly successful that we start running out, it won't be that hard to add more." (though I don't remember where I picked that up either)

A 32-bit planet is a tool, not a toy. Like a car, it's a device for a responsible and independent adult. There aren't 4 billion cars in the world, nor 4 billion independent adults.

If you aren't an independent adult, and you don't need or even shouldn't have unconditional digital freedom (no one's 8-year-old daughter needs unconditional digital freedom), a moon from someone else's planet is fine. (Even most of today's independent adults don't complain enough about being Facebook's moons.)

It's literally a bullet in their "objections" post.

You said the founder believes "there aren't and never will be" 4B people "worthy" of an urbit planet. I'm asking where you got that "never will be" part.

I think your reading of that bit you quoted is extremely uncharitable. I don't see where urbit is passing pronouncements on anyone's "worthiness". The way I read that quote is, "an urbit planet is server software, and there are way less than 4B people with a server to run it on."

There are about 5 billion adults[0], and they don't all need separate planets. Married couples, for example, may not.

That's beside the point, though. Using scarcity to create value is not "extremely unconventional"; it's about the most ho-hum idea in Urbit. If you want a 128-bit address, you can use those in Urbit just fine. The only difference is that they don't have a default-positive reputation (where "reputation" is an abstract concept -- in practice, e.g. some channels wouldn't let 128-bit address post comments)

[0] https://www.census.gov/population/international/data/idb/wor...

4,294,967,296 is the number of planets which is a much more than 4 million. Think about a planet as a piece of land more than a phone number. How many people on earth own a piece of land? And when will that reach 4 billion?

Also, if Urbit becomes popular other groups will start similar systems and they will be able to interact.

I believe the 4 million in your parent's comment is a typo. Further along in the same comment they refer to 4^32 and down thread they refer to 4 billion.
Like IPv4, it's a theoretical maximum that will be hard to reach because the number of allocations are divided up into blocks... Universe(Galaxy / Star / Planet / Moon) are the top 64 bits of the address space, so there is a 2^32 space for planets, and the top 8 bits of each segment followed by all zeros would refer to a (Galaxy / Star) of which each are also addressable, single machines.

So yeah, 2^32 planets (minus 65536 stars (minus 256 galaxies)) and each planet has a plot of "land" that is 2^32 wide to allocate moons out of. What happens if we run out of planets? Then people will start living on moons, simple. Or comets (the remaining 64 bits in the 128-bit address space are for comets, which are not comparable to land or homesteads.)

I'm not sure I understand the relevance of your comment. This is the motivation for mine:

tptacek> [T]he founders ideological views are also infused into the system.... [T]he most available first-class address in the system is in a 32 bit address space.

chc4> As for ideological views: there are 4 million planets. They are, essentially, houses, but each one of those planets can also issue 2^16 "moons", which can themselves be their own people. I don't know the reasoning behind why 2^32....

njarboe> 4,294,967,296 is the number of planets which is a much more than 4 million.

I read 'njarboe's comment as a correction of chc4's use of "4 million". 4,294,967,296 is 2^32 (rounded to 4 billion), which 'chc4 mentions here as well saying 4 billion another comment.

If I've missed something, please do correct me. I just think 'chc4 meant to type "4 billion" given the their other correct use of 2^32 in the same comment and 4 billion elsewhere (https://news.ycombinator.com/item?id=15300641), and 'njarboe's misinterpreted 'chc4 as misunderstanding, rather than fat-fingering. I'm not saying anything about the choice of 2^32. If you read that as otherwise, how can I improve my writing to make that clearer? Was there a particular phrase that you found easy to misinterpret? Something that made you think I was saying anything more than that? Do you think 'chc4 meant "4 million" and not "4 billion"? Are there actually only effectively 4 million (not billion) planets? As for my interest in continuing this thread, it's not that care about the discussion topic, but rather whether I'm communicating (reading and writing) effectively.

No, it was clear, the point I was contesting was the first point that you quoted. I could have been clearer on why I was commenting.

> The most available first-class address in the system is in a 32 bit address space.

The most available address is a comet. What is the meaning of a "first-class" address? They are all addresses, the motivation of the founders and the concept of a first-class Urbit address is what I take issue with. There is currently very little that you can't do with one of the 0::(64bit) addressed comets, except for "spawning child addresses." The other differences are all theoretical solutions to problems (spam) that we Urbit users in great part just don't have yet, so the idea of a first-class address is basically theoretical too. Having a planet is more like having a /24 if you want to draw parallels to IPv4, but... not really a valid comparison.

Comets are the most available addresses. There are 2^64 of them and it only costs a few CPU cycles to generate you a private key. They have no subordinate "child" addresses. Otherwise they are first-class citizens and you can have as many of them as you want. Go ahead and take your share of that pool of 1.8446744e+19 addresses.

I don't know who would pay $10 for a planet. I know they don't want you to get more than one, in case they need to impose spam controls on these "lower 64" free addresses. I know lots of people have paid for stars, but I don't personally know anyone who didn't get their planet for free at this time.

(Disclosure: I own a galaxy, I don't sell planets, and I did not pay any amount of money for my galaxy. I was in the right place at the right time, and I helped test early releases. I am skeptical that it has the same value as the galaxies that are still held by the founders (it is priceless to me,) but they are active contributors and there is a good reason to give them money if you want to see Urbit development continue.)

There is no such value to be extracted by paying ~del's discount planet shack for stars or planets. I am hardly even a casual hoon programmer.