Skip to content

Ethereum? Where to start

Simon de la Rouviere edited this page Apr 2, 2015 · 2 revisions

Ethereum

http://www.ethereum.org.
http://github.com/ethereum.

There's a lot of parts to Ethereum and this page serves to give an intro on where to start with development and understanding of it.

Ethereum is a blockchain platform to build decentralized apps on top of.

First: the official wiki is a good place to poke around in, but you'll still be confused if you are new.

Ethereum has 2 core parts you should care about as a dapp (decentralized-app) developer: what client you use (how you interact with the network), and what language you use to write the contracts.

Clients

There are several clients being developed. Currently, the most well developed is a c++ client, and a Go client. The c++ client has a command-line interface (called eth) and a GUI interface called AlethZero. Go's commnand-line is called "geth", and has a GUI being developed called Mist.

AlethZero has more network information available (for developers) and Mist is a user-facing browser. There is an IDE being developed called Mix.

Languages

At its core, in order to sandbox the execution of turing-complete code, a VM is created with specific OPCODES. The higher-level languages compile down to this OPCODE. There are several (LLL (functional), Mutan (go-esque), Serpent (Python-esque), Solidity (JS-esque)). Solidity will be the main focus of the Ethereum.

Executing Contracts

In order to post state changes to the blockchain, the code is executed and "gas" is consumed in order to do so. Build more complex contracts and more gas will be required to be consumed. Gas is a standard amount. A specific OPCODE (once specified) costs the same each time.

In order to get "gas", you have to pay for it at the point of transaction. You do this by spending "Ether" at a price you yourself set. This is a marketplace for gas. The miners who are securing the blockchain can decide whether the rate you posted is acceptable or not. If not, your state change is not executed.

Getting Started

The code is (currently) being developed quite extensively and can sometimes be confusing (as things potentially break, or swapped out with newer, better parts).

This is the planned launch process: https://blog.ethereum.org/2015/03/03/ethereum-launch-process/ [Ethereum is winding down the security audit].

To start coding in Solidity: https://dappsforbeginners.wordpress.com/ To delve more deeper into architecting contracts: start here -> https://dappsforbeginners.wordpress.com/[https://dappsforbeginners.wordpress.com/](https://dappsforbeginners.wordpress.com/)

Other places to hang out:
#ethereum IRC on Freenode.
http://www.reddit.com/r/ethereum
https://forum.ethereum.org