First acquaintance with Ethereum Development

Nikita Kudryavtsev
Codewords
Published in
4 min readJan 21, 2018

First acquaintance not only with Ethereum but also, first time writing an article, will try to keep things clean and to the point. It is an attempt to gather and assemble resources and knowledge from 3 day learning sprint developing with Ethereum, while its still fresh.

Disclaimer:

I’m a newbie, apologies if my understanding of some concepts is wrong, so just be aware, and hedge your risks from potential misleads by researching topic on your own. My background is a JS developer and tech enthusiast.

What to expect:

An brief intro into tech (web3 & solidity), curated list of resources(articles, tutorials, docs and much more fun), set up your own dev environment (Remix IDE, testrpc, networks, Truffle), simple Smart Contract and deployment. Discover, learn and say hello to the future of the web.

But before you waste any of your time reading this article, check this collection of knowledge, maybe the answer you are looking for, already awaits, else enjoy the read.

Motivations

See what can be achieved in short amount of time, when touching new technology, which I now even more interested to work with.

Solidify and share my knowledge/experience, maybe it will save you some time (the only really valuable token we have).

While learning something new, I often learn most from fellow peers, who are going through similar struggle.

Avoid pitfalls, like downloading an entire ledger, because couple of tutorials suggested such approach (spoiler, there is no need if you are looking to play around and test things, npm i -g ethereumjs-testrpc is well enough).

Double check

Be aware! Since ether holds real value, please be careful while using and developing, double check contracts, transactions, networks you are operating on or with. Don’t make mistakes like this person (23 ether transaction cost, or 24 000$ in value as of 21.01.18).

Intro (if you just came back from Defoe’s island)

Definitely start here, intro by Preethi Kasireddy

Solidity

There are 3 main high-level languages to speak with EVM (Ethereum Virtual Machine), which you then compile into byte code(using solc). There is a reason why, subtopic is called Solidity, because it is the most used one (just like JS, what a coincidence?), rather then LLL (Lisp like) or Serpent (Python like), hence the obvious benefits of more info, docs and tutorials available.

Remix IDE is a great platform to code, code and test code, with dope features like, compilers, debugger, ability to run on different environments (for testrpc, beware you might need to change from https to http in order to work).

I think there is no need to expand on features, as best would be practise using it by writing contracts yourself, and I recommend to start here (thanks el capitano) and here:

Great Solidity video tutorials by willitscale, nicely structured and even being a video content, it saved me a whole lot of time and clarified many doubts and ideas. Many thanks to him. Or CryptoZombies by Loom Network a dope interactive game tutorial.

Web3 the future of web?

Web3 is a library to interact with ethereum node, whether on main net, test ones like Rinkeby(geth) Kovan(Proof of Authority/parity) or Ropsen(Proof of Work), or even local testrpc, through IPC or HTTP, currently new version is being realised, I suggest watching video from Ethereum Foundation Dev Con in Cancún in early november 2017 by Fabian Vogelsteller and read docs here (current) and here(1.0). Also check out docs on JSON RPC API

Mist browser comes with web3, for other browsers you can inject it into your project and your users can install metamask extension to interact with main or test nets through your dapp.

There are many other services/protocols being developed, which fit perfectly with idea of a decentralised web, as seen on diagram below or eg. IPFS (file storage) or Uport(auth) .

The future is here

Full Stack

In my subjective opinion assembling everything together helps understand how things work and interact, so here are few tutorials I found most informative:

A must-read by Alex Miller shame I only found it while writing this article.

How to code Cryptokitties by Loom Network

A hello world series by Mahesh Murthy using Truffle framework (Ganache)

Simple casino dapp by Merunas Grincalaitis very informative and truly full stack & decentralised, even with deploying it on IPFS (although not yet using p2p name registry for domain)

Micro awesome list (more to come)

Curated list of dapps: stateofthedapps

11 dev tools to make your life easier by Zane Witherspoon

Solidity cheatsheet

loomx projects (ethfiddle, deploying in beta and interactive zombie tutorial)

Cryptokitties source code

Ethereum Foundation youtube channel plenty of content to catch up with.

Dope video loop, which I think really represents not only Ethereum but the right kind of feel for today & tomorrow’s internet .

Open Zeppelin is a library to help you write smart contracts

Pet Shop Tutorial by Truffle

Ethernaut game/tutorial by Zeppelin team

Infura proper access to the eth network, without the need of your node (lol), and much more

Thanks for the read, if you got this far, it is either you scrolled and found nothing useful or maybe completely the opposite, again apologies if I’m wrong somewhere, please do correct me, comments and other helpful resources very welcomed.

--

--