EOS - Development platform first!

in #eos4 years ago

What on earth is EOS, really?

I've recently got very interested in developing an app on the blockchain and of course, my research brought me to EOS. I notice something peculiar though: many people are looking at this project from the crypto point of view, through the lenses of previous experience with blockchains, altcoins, myriad ICOs, etc. Not that it's wrong but from my point of view, EOS is something completely different.

I am coming in as a developer first and this is how I see EOS:It is powerful development platform with all the benefits of the blockchain. I believe that EOS will be a tool to really bring blockchain to the masses and the reason is that it's just the natural endpoint for any dev looking to do something useful with this technology. In this post I'll share how I reached this conclusion and what I plan to do in the future.

I was looking into building a new project recently. My target audience is mobile app users that expect a free product with perhaps some in app purchase option. It's not groundbreaking but I think I can do better than what is already out there. A friend of mine hears the idea and says to me "you know blockchain would be really good for this". Hmm... yes it would actually! I have in app currency (call it gold coins, zoo dollars, tokens or whatever), digital assets that can be shared and would be perfect on a blockchain. So let's look into this then. Given that he is a steemian he tells me to start with graphene and work my way up as needed. And that's how it starts...

I'm thinking: Spin up my own chain. I look into that for a bit. So the platform is very cool. It's fast and proven and open, so far so good. There would be however a lot of development to customize it to do what I need, seems like a waste to do that just for my app. Also a lot of hustle to get the network started, get people to "mine" for the network, distribute the initial currency to get the ball rolling. Simply too big of a challenge that I can't possibly take on. I need something else. The next step follows:
What about this DAPS that I keep hearing about all the time popping up on ETH?

Let's build the app on ETH. Sounds great. Touring complete blockchain. Looks well documented and a lot of resources for getting started. Promising so far.
I take a look around to see what other people has built so far. Tokens, tokens, tokens, obscure hedging contract, digital asset management, token for paying content publishers. Most seem to revolve around money in some way or another and can't seem to find many that are actually built and running yet. It's still fresh I guess so people had not had a chance to get there yet. That's ok. I don't mind it, but I'm not in it for the ICO and creating a token for the sake of it. I need to see if it WORKS.

I dig deeper architecting my future app. I want my users to be able to use it for free. But the network wants to charge them for everything they do. Well that's not ok. Would my users want to pay for so much, even if I tell them it's not me who charges them? I don't think so, they expect this to be "free".
So let's see what I can do.
Ok so I can seed them a little money for gas when I sign them up. That seems to be fairly straight. But they will use it up. So I need my contract to keep replenishing them after every transaction they make with me. Wait that's not good. That will cost me a fortune in gas. So I need to keep an eye on each of my users and replenish them from time to time to be more efficient. But I only want to give them what they use for transactions with me. I can do that. I also need to make sure I'm not getting flooded by bots signing up and scamming me out of ETH. At this point this is starting to be tedious. But I have my developer hat on I'm spitting solutions left and right. Nothing that can't be overcome. I'll do it! [ oh, the enthusiasm of beginnings :D ]

Next problem was login details. I really don't want my users to have to think about public and private keys. Random character strings and all that. I could get them in via secret passphrase only although it will be hard for my users to remember this and not be able to change it! And I do want them to have a human friendly name. I really don't know if that is possible on ETH (I might be wrong). Also if they forget their password that's it (unless they've saved the private key somewhere, again with the PKs!).

Next I'm looking at performance. Three transactions per second, that I need to share with all the ICOs. By this point I kind of understand why I can't find any actual apps built on ETH. But I guess there are works in progress to speed things up so there is hope for this to get better by the time I have my app live.

The drop that really filled my developer bucket was the immutable code. After I implement all the hacks to get my user to kinda be able to use my app for free and in a kinda crypto transparent manner but God help me if I make a mistake in all that code. I would need to pray for a hardfork to get me out of the jam ( heh ), but lets face it, I'm not going to be any DAO so that's not happening. Actually that's good, if every dapp out there would be a DAO there wouldn't be much to ETH.
But anyway, I'll need to build MORE code to somehow be able to migrate from one contract to a newer one. Does that mean I need to transfer the my whole database over to a new contract? Probably... How long is that going to take?
OMG how much gas will I need to pay?!
Vitalik, you a genius but come on, bro. The gas price is too damn high!!

By this point in the story I am DONE with considering ETH as my platform. And after a look at other general purpose blockchains out there I'm back to my friends suggestion of building it on Graphene. Daunting task ahead of me. Am I really good enough to build my own blockchain? Probably not:(
I am disheartened and considering that maybe, this won't happen as I thought but then...
...a ray of hope! Rumors start to spread out. Dan, yes out very own @dantheman, is working on something big. Then the announcements go out, and the conferences, and the interviews. And now I have hope that my app will actually see daylight. All the things I need to actually build a functional app, EOS has thought of already.
I get the named accounts.
I get the free transactions.
I get the account recovery and security.
I get the speed I need.
I can now upgrade my code if I make a mistake (AND I WILL!!).
And I even get a relational database with indexes for my data store!

Vitalik, step out, there's a new genius in town!

I get a complete platform to build and run an app that a HUMAN can use. A human who thinks like a human and not like code. And on top of all that I get all the extra benefit of running on the blockchain!
That's when I have my EUREKA moment: this is the way more people should start looking at EOS: app development platform first! With the added benefits of running on the blockchain. Good luck to all who want to build apps not tokens!
[ I sound smart here? It's mostly because I say a lot of what Dan already said. Oh well...]

So here I am. An EOS Maximalist even though eos is not yet out. But I have great faith..and realistically speaking, this is the only way to build my app on blockchain right now, so if I sound irational is because I'm forced to be. ( but i'm not :D )

I plan to continue to post on developing for EOS. Next up I will write about my experience in building the EOS code, running a node etc. I will also be playing with with the test ICO and writing about my experience with that on the test net. If you are a developer and plan to get into EOS hit me up to exchange ideas and opinions. I am Andrei Nadejde (@93773717 (Andrei)) on Telegram and @nadejde on slack.

See you on the flip side!



This is the diagram showing the tradeoffs between security and (ease of use, free transactions, whatever other pansies EOS claims).

For account names, Ethereum has ENS.

Free transactions, Ethereum has abstraction.

Recovery accounts and security? You don't want any of those 'features' listed under EOS. And if you did, you would implement them on top of a service whose core worked like Ethereum. There is a reason you can't get your account back it you lose your password.

Speed, well this is for Raiden and sharding. Much more secure than the DPoS tradeoffs.

Nothing against EOS but there are some tradeoffs involved. See these posts for some more reason regarding EOS.




Also what is the reason you cant get the account back if you loose the password? Is it technical or are you talking more of a priciple issue?

Because of public key cryptography. The fact that you lose the money if you lose the key is the point of these systems.

Punnishing systems like that tend to keep amateur users away. If I had to do a crash course in crypto to anyone who joind I would loose 80% of my user base probably. If I dont and people start loosing access riots:) you will eventually educate the crowd but the entry level needs to be extremely friendly and not at all punishing.

It is not stopping trustworthy intermediaries from building layers on top. You don't want the base layer to have such a loose and insecure architecture. There will be crypto banks that make it so your average user doesn't have to worry.

Again, the "punishing system" is the entire point of crypto. If you don't want that, just use a database.

But then we do want crypto for the masses do we not? Also the "there will be"... when? How much to wait for ETH to get there? That is the question. Business needs to move fast or die.

Well if you think this space is ready for mass adoption you are wrong.

Isn't steemit a proof that mass adoption is almost there?

I'm sorry @nadejde, but I think you're missing the point. Is not a punishing system, At the base level, the private key is the only way to link the real owner. Recovering keys means someone has the power to just generate a new access for your account and that loses the whole point of being decentralized. We don't want a single entity holding the keys for us, thats the only reason cryptocurrencies exist. You can create new layers on top of the contract or app or whatever. Whats your app about that your need a decentralized blockchain in the first place?


I am aware of the tradeoffs. And I think they are worth it. Every developer building their own account management system that makes sense is going to end up in alot of people loosing their stuff... these services need to be built into the network.

Also I have no interest in the techinolgy from the payments and finance point of view. Even if it was less secure as you say ( and I'm sure smarter people than I am can comment on that point) this would not be a problem.

Well yes and no. The point where people lose their stuff is because of the security offered by Ethereum/BTC. If there is a system that allows for account recovery and transaction reversal, you have fundamentally reduced the security. That might be a worthy tradeoff but it is less secure. That is the reason that you can't recover lost keys.

Not transaction reversal. As I understant the transaction is not final intil the time delay expires. The intent is still immutable. Once the timedelay has passed an the intent becomes transaction that is also immutable.

Time delay or not the transaction has no sense of finality when using that.

Again it is a tradeoff. Not necessarily a bad thing.

Agreed. Its just a different way to look at things. ETH and EOS will likley have different targets.

Totally agreed Andrei. It's going to be a fun platform to work with.

Yes! Can't wait to get my hands dirty :) and tbh also looking into developing some C code. Haven't done that for quite a while now:)

Great article on EOS! Will be awesome.

great job! Can I translate this to Chinese?

@nadejde i love your article. I may need to get in touch with you wrt an idea i have.

Sounds revolutionary from a revolutionary mind. Apparently, EOS will be so powerful and fast that in theory all of Ethereum can fit inside of it. lol

In other words:

looking forward to your posts on experiences with EOS

Touring complete ==> Turing complete

How much stake needed for a startup which aim for 🔟 k users, can you compare in real world scenario to the blockchain ecosystem. Which is cost effective.

I just loved your articale, it is really boosting me up again, thank you,now going to see your further updates,I wanna join you in tele