Introducing Namespaces

Hi Guys,

It is my pleasure to introduce you to Namespaces on NEM!

A domain name is required when making an asset on NEM (that asset function is called NEM Mosaics and will be explained more later). Each individual who wishes to create a mosaic needs to register a root domain name. This domain name can be thought of very much like a website domain and in NEM is known as a namespace. This can be bought for an amount of XEM (to be defined later). The namespace length shall be limited to 16 alphanumeric characters.

A creator owning the root domain namespace can create as many sub-domains as wanted, using a convention similar to the Java namespace convention, i.e., separated by a dot “.” to represent a domain or subdomain and an asterisk surrounded by a space on each side “ * ” to represent the name of an asset. This is the current internal convention in NIS and how it is represented later in the NIS and/or NCC UI might differ. This gives the creator a practically limitless number of mosaics that can be defined within a practically limitless number of sub-domains. The sub-levels of a namespace can act as the actual name of the asset, or in some cases can be a class of assets as it is itself a sub-domain with lots of assets under that sub-domain name. This means that last part of a mosaic will always be the name of the individual asset on the NEM blockchain and the prior names will act as the domain and/or subdomain for that asset.

In the above example there are 6 assets. They are as follows:

  1.   jabo38.jeffsilver * halfounce
    
  2.   jabo38.jeffsilver * ounce2015
    
  3.   jabo38 * iposhares
    
  4.   jabo38.exchange * usd
    
  5.   jabo38.exchange * eur
    
  6.   jabo38.exchange * zar
    

In the first example the domain is jabo38.jeffsilver and the asset is halfounce. In the second example the domain is jabo38.jeffsilver and the asset is ounce2015. And in the third example the domain is jabo38 and the asset is iposhares.

While the first part of a namespace is globally unique on the NEM blockchain, the rest of the parts of a namespace are not. Having non-unique sub-domains in a namespace system allows for anyone to use any name in the subdomain positions, making squatting on certain names far less exclusive as they are not globally unique, and at the same time giving chances for easily recognizable names within one’s personal local network.

3 Likes

This is pretty freaking cool.

http://www.reactiongifs.com/wp-content/uploads/2013/10/I-love-you-gif-Tim-Gunn.gif

Creating scam assets with the same name as legit ones will finally not be possible anymore and with namespaces it will become less messy. With that system someone could even keep an overview of jl777 assets without following every single post no matter how many there are :slight_smile:


Couple of questions:

I'm guessing the root namespace has to be unique ?

Will namespaces expire over time ? If so, will it be cheaper to renew than to re-register ?

Will namespaces have any functionlity beyond mosaics ? Like using them as alias for certain accounts ?

Will namespaces be multi-sig compatible ? I.e. can I make it so that mutiple accounts can issue new sub-domains but everyone has to sign-off on it.

Will there be an easy way to trade namespaces i.e. transfer ownership ?


Couple of questions:

I'm guessing the root namespace has to be unique ?


Yes.


Will namespaces expire over time ? If so, will it be cheaper to renew than to re-register ?


No.


Will namespaces have any functionlity beyond mosaics ? Like using them as alias for certain accounts ?


There are no concrete plans as of now but of course there might be functionality somewhere in the future.


Will namespaces be multi-sig compatible ? I.e. can I make it so that mutiple accounts can issue new sub-domains but everyone has to sign-off on it.


Creating a sub-domain is done via a transaction and transactions respect multisig, so yes you need the cosignatories.


Will there be an easy way to trade namespaces i.e. transfer ownership ?


The first version will not include that feature, but maybe later vesions.

Cool feature!


Just one important thing I want to know. Just like NXT Alias have 'Data' filed to store any text or string in it, will Namespaces have such feature?
-If yes, will be only for storing 'data' contents for root name?
-Could be possible, the sub domains like jabo38.jeffsilver have it's own Data field? like storing different data for a subdomain? (This would be pretty awesome!)
-What would be the limit of data size for that if it will be possible to store data for a root domain?


I'm asking so, I can use Namespace names as Decentralized DNS feature, just like .nxt domains, these Namespace names would then act like '.nem'
Like visiting http://jabo38.nem will let you visit a website or other serivce.


Cheers,
Satinder


Cool feature!


Just one important thing I want to know. Just like NXT Alias have 'Data' filed to store any text or string in it, will Namespaces have such feature?
-If yes, will be only for storing 'data' contents for root name?
-Could be possible, the sub domains like jabo38.jeffsilver have it's own Data field? like storing different data for a subdomain? (This would be pretty awesome!)
-What would be the limit of data size for that if it will be possible to store data for a root domain?


I'm asking so, I can use Namespace names as Decentralized DNS feature, just like .nxt domains, these Namespace names would then act like '.nem'
Like visiting [url=http://jabo38.nem]http://jabo38.nem will let you visit a website or other serivce.


Cheers,
Satinder


I'm guessing it's kind of answered with "No" here:



Will namespaces have any functionlity beyond mosaics ? Like using them as alias for certain accounts ?


There are no concrete plans as of now but of course there might be functionality somewhere in the future.



Could be wrong though. Plus it's prob not to big a change to add a data field even if it's not planned right now.

If it's not planned and can be added, that would be really great! :slight_smile:

I'm not aware right now of being able to create a data field. I do think many transactions have the ability to leave a message up to 160 characters. Not sure if that could be indexed or helped.


I'm not aware right now of being able to create a data field. I do think many transactions have the ability to leave a message up to 160 characters. Not sure if that could be indexed or helped.



If there's no set plan for Namespaces to link with data field, I think there should be. If that needs to make a request somewhere, please let me know. I'll create a request for this.


A linked data filed I think would be much easier and straight forward to query via JSON API. And using that API call different apps can use Namespace names for different purposes.
In my case I'll use it for making a decentralised DNS. (eg. .nem).


Thanks jabo38 :)
1 Like

At least jaguar and I talked about using namespaces as aliases to send transactions to. We both think it's a good idea, so that feature should be implemented eventually.


At least jaguar and I talked about using namespaces as aliases to send transactions to. We both think it's a good idea, so that feature should be implemented eventually.



Cool! Will wait for detailed update on it soon when Namespaces release.


Cheers :)

This sounds great.
A nother think you could do with a namespace which is combined with an account is to realize the node reward.
Pay the Bonus to the account which is equal with the servername. Very easy :slight_smile:

(I don't want to hurry up the reward discusion, but I thought it is generaly an Idea to discuss)

Have a nice evening,
Espo :slight_smile:

I thought it has expiration and there is a renewal fee which is cheaper.

I think that would be the best option.

Namespaces expire every year. I don’t think the renewal fee is any cheaper than the registration fee, though.

Who owns namespaces?
I mean: if I buy one, the fee goes to the harvester?

The fee will go to a special multisig account, not to the harvesters. The reason is that people would start waiting to harvest a block to include those namespace provision transactions and thus getting the namespace essentially for free.

You can buy namespaces and then your account will own the registered namespace.

Nice.
Is there already a destination for the funds in this multisig account?

No decision on how to use the namespace provisioning and mosaic definition fees yet.

No firm decision yet, but the current proposal is to use the funds to fund post-V1 development. V1 is likely at least another year off, so it will help make development sustainable into the future. It’s important to create a system that will keep itself running for the next few hundred years, not just in our lifetimes.