Holochain Forum

How can Holochain replace the need for the current system of domain names?

Are domain names even a thing on a Holochain-based Internet? Wouldn’t we all be better off just sharing a single domain between all apps of the ecosystem? Are there advantages in fragmentation I’m not seeing here?

When I see current local businesses and organizations presence on the Internet, most of them don’t have domain names, or websites, but all have an Instagram or Facebook account. Domain names are a fixed-price resource that are not equally accessible to everyone.

In my mind, categorically, I see no difference between a “domain name” and “A facebook page” or “an Instagram account”, or “an app name on the Play store”, “a YouTube channel”, “a Twitter account”. My grandma will still google it either way.

What if something like Holochain.love was a portal to the Holochain Internet Commons in the same way that Facebook.com is a portal to the Facebook’s Private Internet Space? We could just say to people to just “Search for X on Holochain”. I feel like explaining a single new app that represents the new Internet to someone is easier than explaining multiple separate apps that look like old apps on the surface. Yo go there and there are alternative apps for every centrally-controlled app that you knew on the Old Internet.

Resources, libraries and design patters could be shared among everyone. And with something like the Compository anyone could create a new custom happ in the ecosystem to serve their community.

Additionally, by taking advantage of all being open source, serving everything unbundled with a build system like Snowpack and something like Skypack, we could reduce the footprint of the entire ecosystem, making it more accessible to everyone.

Is there any initiative towards this? How can I be of help?

3 Likes

Domain names are private properties just like a prime piece of land. Different domain names on different networks, therefore, have different prices. For example, a domain “the-a-man.hell” might sell for 100 dollars on the ICANN’s mainstream traditional domain registrars’ domain-purchasing services. And it might sell for just 40$ on ENS (the Ethereum Name Server; though they only sell .eth domains). Or it might sell for just 20$ on the unstoppable domains (though they offer only .crypto and .zil domains). The price differences should be evident and are due mainly to the fact that most people (or most browsers) search domains on the traditional DNS servers’ registry.

That said, there is (and should only be) only one thing to dictate the price of a domain on any platform, that being the free-market competition. But that’s sadly not the case at all! And it’s damn disappointing. In fact, when you purchase a .crypto domain, the fixed price of $40 goes just to those Zilga people who wrote that smart-contract; why then have a price if it doesn’t even serve any purpose! Same with ENS (plus they charge a goddamn holding fee too for as long as you hold it)! It’s theft that they’re committing, nothing more (forget the DNS; after all, what can be expected of that filthy centralized oligopoly)! Rot in hell ENS, rot in hell DNS, rot in hell unstoppable-domains!

I hope someone implements a sincere domain marketplace on Holochain where the sole determiner of the price of a domain is the free-market competitive auctions. In fact, these guys below have done a great job designing a framework (an auction theory) for such competitive auctions that should serve all our requirements from our hypothetical domain marketplace (the HoloDom, maybe…).

Simultaneous Multi-Round Auctions:

This (h)app, I believe, should be another of those fundamental (h)apps being worked on by the Holo(chain) team itself (besides the persona/profile (h)app and the likes of it)…

So for example, if no one is interested in “the-a-man.hell”, I should be able to buy it for no money at all (after it spends a day or two in completing its stagnant last-round).

And if everyone’s interested in “car.insurance”, it probably would sell for 1 billion HoloFuel units (or HoloDom Vril tokens, or whatever), that too after months of bidding by the insurance companies interested in the domain.

And no domain should have an expiry date, i.e., you shouldn’t have to renew the domain once bought.

You should however be able to relist the domain on the market, and the highest bidder’s bid should come to your money-account.

Or you can directly transfer the domain you own to your friends with whom you can settle the transaction off-chain.

Or, if a domain is represented as a Vril (in which case, transferring the token is like transferring a dollar bill), you should be able to list it for a certain price, which when satisfied by a potential buyer means you automatically losing the domain and gaining the price, and vice-versa for the buyer.

Pretty neat, don’t you think?

I want to be honest, to me it all seems like a play of symbols, the names themselves don’t have any value, so why do we condition it’s access to a form of currency that’s tied to basic survival needs such as food and shelter? I fear this could invisibilize communities that can’t access, pay for, and navigate the domain names system.

I would challenge the assumption that domain names and pieces of land are private property. Ownership itself is a made up concept. What I see is an agreement to respect each others choice of names and places to be, which I see more a matter of self-governance of communities than of competition-based decisions.

I much rather prefer to be on a cooperative than a competitive relationship. Where no one desires to coerce anyone into anything and all conflict is resolved through compassionate communication.

2 Likes

As for structuring the (h)app (let’s call it HNS), there should be a registry zome that provides the primary functionality (of associating domain names with some data; for example, associating smalltalk.chat with the smalltalk (h)app’s DNA hash; should there be a limit on how much data can be associated with a domain? I don’t know! Maybe the ‘associated-data’ entry should be a private entry, which ensures that the cost of storing and serving the contents of the ‘associated-data’ be borne by the user to whom the domain belongs, but then that user would have to himself/herself serve all requests to that domain (via. unrestricted remote calls) and suppose the domain attracts 10k hits per second, in that case our user can’t load-balance, sadly… 'Cause as far as I know, there can’t be (or shouldn’t ideally be) more than one machine serving the same holochain (h)app for the same agent, right? I mean, wouldn’t the keystore go crazy, among other things breaking?); the auction functionality should be a different DNA (we don’t want to inflate the core registry DHT with the petty temporary auction data. And the HNS Auctions DNA should not be a generic auctions-related DNA, rather it should specifically be built for the use-case of domains. For example, one auction round should ideally last for 24 hours (time is a tough problem for Holochain, and always will be… sadly… you see, there’s no objective time). Or those nitty-gritty details can be parameterized and the Auctions DNA could be made generic (i.e., appealing to multiple use-cases, including the HNS’s use-case for which it will be built). As for the domain ownership (N.B.: Not really promoting my vision for Vril; it’s just that I genuinely believe that Vril is the right way to do tokenization-related things, and can’t honestly think of any better way that this), the HNS happ should have a zome that meets the criteria for being accepted as a Vril Contract (i.e., implements the few simple functions dealing with acquisition and transfers of private-property/tokens). Only when the ‘edit-associated-data’ function’s requestor agent is the rightful owner of the said domain’s Vril (as every domain is issued its own Vril) is one allowed to finalize a ‘write’/‘edit’ action to the data associated with the domain-name (and the validation functions enforce the same; note that this requires the agent-id of the domain’s Vril owner be the same as the agent-id with which the ‘edit’ request is being made on the HNS DNA). The Vril is always originally issued by the HNS Vril Contract. Upon original/afreah/anew issuance of a Vril (for a domain-name, let’s say, “first-time.me”), it’s sent to the auctions (h)app, which decides who it’s sent to (i.e., the highest bidder); note that if those originally interested in the domain suddenly lose interest in it, the Vril is simply sent back to the HNS (h)app to be melted/annihilated. Also, note that at any point, a domain owner (the Vril owner of the domain) can send his/her Vril to the auctions (h)app to relist the domain for sale, upon the sale of which the money thus earned is sent to the original holder (the relist-er, or the seller). Or one can directly send the Vril here and there to other accounts (to some friend, for example).


A silly and irrelevant doubt: Is this (and other alike use-cases about composing/designing Holochain systems) what will be discussed on 6th and 7th of this month? And will the talks be posted on YouTube? And if yes, then why require registration? [cc @carolyn]
A clarification would be much appreciated.


Ahh, I smell a communist!

Isn’t money a tool to do just the same?

They can buy a 0$ unattractive domain like “an-old-community-domain.net”, rather than the million dollar domain “the-community.net”.


It’s important to understand that Holochain won’t change the world, the people would. Holochain is just a p2p framework that enables us to return to decentralized power-structures that we’ve digressed from over the past thousands of years. And it’s in the hands of people to design the systems that minimize conflicts, and maximize productivity. And what better way to do so than private-ownership and the free-market? If Holochain had found a better way to replace that, it would have won 10 Nobel prizes by now!

I feel that is a bit reductive… certainly .gov domains should not be up for sale! But beyond that, I think expressing that viewpoint on this forum is a bit… ironic. I’m sure by now that you’re aware that the people behind the creation of the Holochain project have been working on currency stuff for a long time. Feel free to skip this if you’ve already heard this but if I understand it correctly they understand currencies’ relation to society similarly to DNA’s relation to cells and hormones’ relation to animals. Specifically: they are all message-passers. The ‘status’ of any portion of the economy therefore ‘tells’ our societal structure how to allocate resources. From that perspective it becomes quite clear that the currencies we ordinarily think of when we say ‘currency’ are woefully underprepared to facilitate the organization of a healthy society! A currency where:

  • any useful quantity of it is always divisible into nearly infinitesimal sum
  • any quantity is tradable in a zero-sum game
  • only quite centralized institutions may significantly change the supply

is not fit to be the one-size-fits-all currency of our world.

(and obviously you must be joking about no renewing fee… parked domains are the worst! if you are insistent on a system making using of the currency we use today then maybe something like what is proposed in “Radical Markets” will interest you)


And as all this applies to the question of domain name registration, I think we should reconsider if we really even want to give individuals complete dictatorial control over what’s associated with any string of characters in an essentially global namespace. Consider Ethereum. I’m sure both what is now called Ethereum and Ethereum Classic would like to consider themselves the “real Ethereum”. But the Ethereum domain can only direct to one website. If multiple parties are able to ‘own’ the same domain, then we free websites from a cost of development, and make the DNS system so much more decentralized because we no longer need to fret about the CAP theorem, only sybil attacks in a sharded setting!

Of course this presents an issue when a company would like to advertise their website, or you simply want to share a website to a friend. If multiple people register a name, it becomes ambiguous which one is referred to in plaintext. So my proposed solution is not to simply erase the individuality of domain names. I think it is possible to take a page from Git commits and name systems such as that found in Discord which allow multiple users to have the same name. In Discord (and other applications/services), a user may register any name they choose, such as “John Smith”. The name server then appends a “discriminator” to the end of the name to create an unambiguous plaintext referant (in the case of Discord it is a four digit number, so the final username may look something like “John Smith#1234”).

Of course, adopting this solution wholesale would be reintroduce an (at least conceptually) centralized name server, reintroducing the problems of the CAP theorem. There is a simple solution to this, however: use the public key of the registrant as the discriminator! But one more problem, now our domains are unwieldy (Imagine "google#QmEur3754fnsyerjJ2Weqfma or similar!) Borrowing from Git, it is possible to use the first few characters of a hash (or a public key) to unambiguously identify it when it’s part of a small, known set of possible values. Using more of the value is always valid, up to and including the whole value. In the presence of an arbitrarily picked string (the chosen domain name), the number of known values drops significantly, allowing unambiguous resolution with a very small number of characters (this is how Discord gets away with 4 digits).

Therefore my proposal is a domain system where each domain is an arbitrary case-insensitive string (“the chosen name”), and a public key which has filed a registration request for that domain (“the full key”). The system defines (or adopts) a universal encoding for public keys into a simple character set, and defines a minimum number of characters required to resolve a domain (or alternatively defines an algorithm by which one can determine the required number of characters for a given chosen name).

Using the example of a case-insensitive alphanumeric encoding of keys and an 8 character minimum resolution requirement, my domain would look something like “taylor:fh38vnwk”.

1 Like

Good luck with remembering a domain like that!

Imagine telling your customers,
“Hey fancy customers, after you finish gulping our free coffee, do remember to visit taylor colon ef ach three eight blah blah blah”!


The whole point of domain names is “rememberability”.

Well it wouldn’t be much different from Discord usernames. You never call anyone by their full name including discriminator, just by their chosen name. Only in the instance where you need to exchange usernames does it ever come up, and it’s seldom complained about. And eight characters is perhaps overkill, especially for just holochain websites for now! 2 to 6 might do just as well for the time being.

When Google was rising, the domain registrars were afraid it’d kill their core business. Luckily for them, that never happened! You see, there’s so much more to a domain. One can be pretty sure domain names would continue to be a prime virtual real-estate.


Not everyone’s brain is that mighty, Alex. I, for one, can’t remember even 2 digits!

A test for you: What’s the port number that the docker daemon listens to (by default)? See… That proves my point.

1 Like

Well that’s fair. If you insist on a global namespace, then there’s no reason my solution couldn’t be the underlying layer to what you’re proposing. That way it would allow people who don’t mind a slightly longer domain name if it means the website will be free. Combined with Holochain’s serverless nature and easier tools for web development, it could bring the web a new wave of experimentation and decentralization! (imagine a completely self-owned personal website for nearly everyone you know!) And we get to keep global names! Now that I think about it some more, I’m starting to like the idea of combining our proposals…

1 Like

@Zequez

Well, in holochain, there is no built-in concept of domain names since we can’t access a happ via a web browser (that’s what holo is for). Holochain dnas are identified by its hash, and you can only access that dna if you have it installed on your local node, there is no “globally accessible place” to communicate with the DNA, it is always through agents.

In holo-host, where hApps are accessible through normal web browsers, you can associate a domain name to a particular happ hosted on the holoports. Holo’s infrastructure takes care of resolving the domain to the appropriate dna, and now your browser connects to one of the holoports hosting that dna.

BTW, it is not straightforward to develop a fully decentralized domain name app in holochain, like it is in other platforms. Consider partitions in the network. If two people buy the domain name when the network is partitioned, both buys are valid, and when the network merges, we have to resolve the conflict somehow. But this introduces vector attacks also… One definitive way is to introduce some authority that holds the names from moment 0, and then we can validate that the authority didn’t sell the same domain to two people.

2 Likes

Not if the smalltalk.chat domain is associated with an entry that contains the full DNA plus the default UI (thanks to your file-storage zome), i.e., the whole app bundle that the visitors of smalltalk.chat on the Holo Name Server (h)app can pull/download and then install and use on their device. Might be a bit slow though…

Can’t we have a Swarm (ETH Swarm) for Holochain? @guillemcordoba

See, I don’t fully understand how money fits in the picture of the world that’s being born. I just don’t enjoy competition, nothing stops us from choosing to believe we’re all on the same team. I suspect we will figure out a form of social coordination that doesn’t look at all like the money we understand now.

For example, imagine if no one charged for the work they do, living on the spirit of the gift, so what’s the role of money there? How are activities coordinated and resources distributed? Is that really money, or the essence is something else?

I mean, it will work either way, I don’t think the difference between the ways we all agree to get along will matter in the long run. I know that wherever we’re headed we’ll know what it actually looks like as we go, as we learn what fulfill our needs and what doesn’t. Maybe it’s beyond the concepts of cooperation and competition, a different way to relate to the world.

1 Like

That’s the devil in disguise: Socialism! The debate was long settled though… It just doesn’t work. And it never would.

As an anarchist Misesian, I’d recommend you look up “Human Action”, a 1000 page work by Mises. It really caches the point.

As long as human nature holds true, thin chance…


You see, you wish for a noble end (maximizing peace and cooperation, and minimizing conflicts), right? So kind of you… But what you fail to realize is that the means you wish to deploy to gain that end (i.e., community cooperation via mutual gifts, kindness at heart, charity, universal equality) would never actually lead you to that end. Money (i.e., the division of labor) is the only ‘means’ that stands anywhere close to leading you to that noble end (though I generally don’t believe in any utopian end). Money, i.e., free trade, is just a means to an end, not an end in itself.

I hope that makes some sense…


(some of the highly vocal Holo leaders have done one hell of a job wiping all sense-making that the people here once had… So sad… It’ll take time to recover from the mental damage, I guess… One ought to be very vigilant in who one listens to, these days…)

Sorry, I wasn’t invited to the debate :joy:

When I read what you wrote, I understand “Compassionate acts don’t lead to a compassionate society, only money can lead to a compassionate society”, which doesn’t make much sense to me. In my belief system, the moment you embody an aligned form of being, you are already creating Utopia/Heaven for yourself.

But it does open my curiosity. What kind of attributes do you assign to human nature? Do you understand yourself as a separate individual? Who are you? What are your beliefs about the fundamental nature of the Universe? How does all this shapes the way you see the world?

Ought to say, you’re asking very sane and valid questions…

In one word: selfish.

Look, I’ve got nothing to sell (unlike many others), plus I keep my real identity unassociated with my online presence. So, as a result, “sounding good” isn’t really a concern to me. So I do not have to pretend to be any more “good” (in the sense of good and evil) than I naturally am. So you might find my language a bit overt, but rest assured that what I say I say solely for the fact that I’ve observed, read, realized, or concluded the truth in the statements that I say. This is in stark contrast with many others one finds on such online forums; you see, when you have something to sell/pitch, neither do you sound convincing nor do you stay receptive enough to catch and comprehend some of the important counter-arguments that others make…

What being selfish means is that man engages in actions and dealings that end up increasing the level of happiness for himself, his family, his loved ones, and others he cares about. Simple. To contradict this is to contradict life, thereby the universe.

Or as the Austrians would say, we act purposefully rather than react instinctively. When humans act, we act with goals in mind. We attempt to achieve something. This something is not motivated chiefly by fight-or-flight instincts. Human action is often directed at achieving something which previously did not exist but that we have imagined to be achievable and of value to us.

That said, the statement “I want to help my community” vs “I want to help my community” are entirely different; in fact, the latter is an impossibility! There is no community, there is only individuals. Period. Certain axioms can be drawn about the community/society (the herd) too, but those depend upon the rules that they’re playing by. Whether they’re actors in a free society, or in a fascist one, for example. And same applies to Holochain (h)apps too; whether you get the domain for free, whether it’s the first person to demand it who gets it, whether it’s the Holo Organization that decides who gets what domain, and so on… You ought to be very vigilant about that.


A society can never be compassionate; only people can be; only you and me can be.

Only money (i.e., division of labor and free trade) can lead to a conflict-free, productive society that meets the demands of the individuals within that society, be it demand for human flesh by cannibals, or demand for soy by vegans. Simple. The market doesn’t bias. The market can’t care less. And this (social cooperation) is not a frontier where you ought to fight/act/contribute if you prefer one over the other.

Well said. [Though I personally don’t believe in a utopian heaven; rather I believe the world is one big hell which one cannot escape; loss is inevitable and one cannot win this game; in fact, this game feeds on entropy and decay to create the forward moving causality that gives rise to our sense of time; one is bound to lose in this game, but to lose without living the fullest would be to lose in vain; or as Albert Camus would say: “One must imagine Sisyphus happy!”]


That said, any cooperative system (such as the one we were discussing, namely a DNS system) much keep in mind the incentives it gives to the individuals that participate in such a system. And if the individual incentives line up with what you desire out of the system, then viola! In short, never rely on this misty esoteric term called “community” to behave/play nicely.

Yes, as far as I know the FOSDEM presentations will be posted to Youtube after.

Registration is not required. The benefit of attending live is the opportunity to ask questions. The Q&A after presentations might not be recorded.

https://fosdem.org/2021/

1 Like

I really appreciate you being open minded about our philosophical exchange.

I understand your point of view, but I fear it stems from different assumptions than mine. I believe in a community as a mesh of shared culture, values, trust, intentions; an emergent organism. Life itself is a community. We are individuals, but we’re also the community, in the same way a finger is finger, but it’s also a human body. A tree is a tree, but it’s also the Earth, the sun, the rain.

I believe our sense of self is not fixed, we can feel we are separate individuals as much as we can feel we are a tribe, or feel like we are Life itself I see no clear division that is not self-made. I see the fundamental nature of Life as consciousness, not physicality. We don’t see our fingers competing with each other, why would humans be at odds with each other when we are part of the same family? I see nature as fundamentally cooperative, rather than competitive. And I recognize this may be shortsighted, as cooperation and competition are a duality, and the truth may be beyond that.

I believe the world is one big hell which one cannot escape; loss is inevitable and one cannot win this game

Well this says a lot. Why not see the world as a big heaven, which you choose to participate, because it’s fun, you enjoy playing, learning, surprises and serving others? Why not let the concepts of winning, losing, competition, cooperation, fall off by themselves, and find ourselves beyond that, in harmony with each other.

Maybe there is no selfish and no selfless, just what we choose to do at any time. Selfish and selfless inter-are too.

4 Likes

You do know that Holochain is designed for a post monetary economy don’t you?
What attracts a large portion of the people to Holochain right now is the understand that what we call money is a very crude one dimensional measure of the flow of value.

2 Likes