Ethereum notes: short introduction

2016-07-02 | Sergey Bushnyak

Last month I got familiar with Ethereum blockchain, while I heard about it ofthen within last year but never had a chance to start running it and dive into interesting concept of smart-contracts and overall blockchain technology besides Bitcoin. Thus I’m starting seria of my small notes to save my thoughts for later use. Naturally, I’ll compare it to Bitcoin and it’s architecture. Some people call Ethereum a second wave blockchain, because some similar projects also rise in parallell with it.

Introduction

The term “Ethereum” actually applies to several things and depends on the context:

  1. the Ethereum project as an organization with people
  2. the Ethereum protocol as well-defined description of idea with numerous EIP (improvements proposals)
  3. the Ethereum network created by computers using the protocol with specific software called client node. I should mentions that not all nodes actively participating in the system, if you don’t have appropriate hardware you won’t subject of mining and very often need to install additional software such as miner client node.

It’s has the same peer-to-peer (p2p) nature, when you’re running a client software you’ll become a peer of some type.

I’m mostly interesting in (2) ethereum as protocol and pecularities of implementation and how it can be applied in real world. You cna think about Ethereum as an distributed execution environment and this something worth of exploring as an oportunity to create new applications.

Ethereum client

There are several clients that allows you to operate within Ethereum network and that’s the benefit of having a protocol that describes all interactions. You can implement it on your own and be able to work within system. Official client is geth and it’s rival parity. Last one provide more abilities and configurations.

I started initially with geth and it different in way how programms download chains, parity on my end is quickier.

Quick Bits

How to start client for a different chain?

use key -–chain

$ parity --base-path="/home/sigrlami/.parity-ropsten" -–chain=ropsten

How to allow access to client through web3?

List allowed protocols with key --jsonrpc-apis

$ parity --base-path="/home/sigrlami/.parity-ropsten" --chain=ropsten --jsonrpc-apis "eth","net","web3","personal","parity"

How to give access to Remix through web3?

Use CORS parameter for remix website

$ parity --base-path="/home/sigrlami/.parity-ropsten" --chain=ropsten --jsonrpc-apis "eth","net","web3","personal","parity" --jsonrpc-cors "https://remix.ethereum.org"

Encourage me

If you liked this work, you can reward so I can write more often or simply buy me a tea/beer/donut:

If you want me to write about some specific topic, check about section and send me email with request