Our nOS ICO preview already outlined some of the key assets of this highly-anticipated NEO Smart Economy project. It’s a decentralized Internet play, data control returned to the user and websites and dApps hosting their content in a decentralized fashion. Their governance mechanism is also interesting, and the NEO council have deemed it worthy of their approval. (Do you think they gather in dark candle-lit rooms with hooded cloaks and incantations? I like to think so).
So for this code review let’s look at nOS, the Virtual Operating System for a new, transparent internet.
So they give us a few things, Immutable back-end code (normal smart contract feature), GAS conversion, now this is a nice one, and a tricky one to solve. What do you use as the value conversion? Considering they have Switcheo and Nex, I guess this shouldn’t be a problem. The issue is Economic Abstraction, I won’t go into too much detail, Vlad did a fantastic article on it (https://medium.com/@Vlad_Zamfir/against-economic-abstraction-e27f4cbba5a7)
They are saying you can pay with NEP5 tokens, they will do the switch from tokens to GAS. This is a nice value add, and it is missing in ERC20 tokens currently. Slight centralized model though, so we have to keep that in mind.
The Universal Smart Contract (normal smart contract stuff), then they point out “It offers popular dApp back-end functions like CRUD and Authentication”, so this is really nice, having pre-built functions easily available to leverage is a big thing. In Ethereum right now you need to include contracts that are life improvements, but new developers don’t have easy access to it. Once you have been building for awhile, you end with a fairly immense library, but to start out with this is inaccessible. So this is a good move.
The last one… Decentralized Authority… you are essentially paying to promote your app, nice idea, but will lead to abuse.
Ok, enough of that, let’s jump in.
There is a lot here that makes me happy, dapp-starter-kit, a React-based starter kit for building nOS dApps, very sexy, nOS Client, nos-local, and name-service. I think let’s look at all of them.
Jumping into nOS local.
Off to a great start, so Ethereum has ENS (Ethereum Naming Service), the problem with ENS is that it still isn’t a public registry, you can buy an ENS and point the friendly name to your contract, but this doesn’t help much and it is a disjointed process. Here, they are building it into the process, deploy application and the name service name is already registered. This is sexy.
So far, these guys are focusing a lot on usability and life improvement value adds, this is required for any real kind of developer adoption. I think we are off to a very strong start, they aren’t doing anything particularly new, but they are fixing the pain points that developers (myself included) have had. Just from what I have read this is making me start wondering if I shouldn’t switch some of my dev to NEO…
nOS-local includes neo-local (docker wrapper to autostart a little cluster) and name-service, so unfortunately nothing in here yet. Bit disappointing after their readme hyped me up so much. So let’s move onto name-service;
Cool, we have a smart contract for the name-service, makes sense, the repo is called name service after all. We only see a contract.py file. Let’s have a look.
Umm, ok, was definitely expecting more. So we have GetDomain, just returns the domain_target_key (which is just the domain name.owner). (Feels weird to do a smart contract in Python, I’ve gotten so used to Solidity). Register domain is a 1:1 relationship with domain_target_key (so this contract can only save 1 domain name), and then some basic crud functions around it.
Nothing here, was expecting a name service implementation, let’s move on.
nOS provides a browser-style interface for running NEO dApps. Let’s hope this is something because we are 0/2 right now.
Should be running a node locally, that’s fine.
Wallet wrapper for NEP6 accounts.
Good support for Ledger.
Struggling to find any substance.
Just a query wrapper.
Good code, but nothing impressive, this is web 101 stuff. Nothing wrong, good layout, good patterns, so these guys are good web devs, but that’s not really what I wanted to see.
Moving onto the dapp-starter-kit, they can get 0.5/3 so far.
Still just very basic.
Rest is the same.
nOS Code Review Conclusion
None of the real substance is here yet. I know this is exceptionally early days. I was however hoping to see more value propositions. Also slightly worried because these guys are clearly competent web devs, but that doesn’t necessarily translate to good ecosystem devs.
Good web dev skills, so I trust they will be able to bring some nice ease of use value adds, but I don’t see a lot of strong backend and architectural skills here. For now just some web apps thrown together to wrap around some NEO functions.
Disclaimer: Crypto Briefing code reviews are performed by auditing what is on display in the master branch of the repo’s made available. This was performed as an educational review and any comments in the article are the opinion of the writer. It is normal for code to change rapidly, hence we timestamp our code reviews so that they present a snapshot at a moment in time. Information contained herein should not be used as any comment or advice on the project as a whole.
nOS Code Review Timestamp: April 22nd, 2018 at 15:01 GMT