Previous Lecture Complete and continue  

  Geth, EVM, Smart Contracts

Geth, EVM, Smart Contracts


Geth is the command line interface (CLI), a compiled binary, program, client for running a full ethereum node implemented in Go.

We will use Geth to:

  • run a fully synced Ethereum node
  • create a new account to be able to send and receive transactions
  • for deploying our decentralised application written in Solidity (a language for writing smart contracts)
  • for reading the EVM state, e.g. checking a balance of any account (want to know how much balance your girlfriend, boyfriend has? Sweet transparency!)


Ethereum provides a decentralized Turing-complete virtual machine, the Ethereum Virtual Machine.

EVM is the runtime environment for smart contracts in Ethereum. It is a 256-bit register stack, designed to run the same code exactly as intended. It is the fundamental consensus mechanism for Ethereum.

Smart Contracts

Smart contracts are deterministic programs deployed in EVM. They are used as account holding objects on the ethereum blockchain or executing any business logic.

They contain code functions and can interact with other contracts, make decisions, store data, and send ether to others. Contracts are defined by their creators, but their execution, and by extension the services they offer, is provided by the ethereum network itself.

Important note: Smart contracts are unable to communicate with the world outside of EVM. You can't call an API giving you the current exchange rate of EUR -> USD. You can't get the current weather temperature in Mallorca etc. This is a serious limitation you will realize once you will start working on your new Dapp (decentralised application). This limitation achieves state predictability of smart contracts.

Smart Contracts will exist and be executable as long as the whole network exists, and will only disappear if they were programmed to self destruct.