There are many articles on the internet about the Ethereum
Blockchain, this one is our attempt to clarify and give a
pragmatic understanding of Ethereum for those who are about to
venture for the first time. In the era of Centralized
Computation no one can trust on each other, Blockchain gets
rid of Centralized Computation by providing the feature of
"Decentralized Computation". To know more about Blockchain
refer our
previous blog.
Ethereum
Ethereum is a Powerful and Trustful Blockchain environment
used to deploy Smart Contracts.
Vitalik Buterin is the co-founder and inventor of Ethereum, he
describes it as a "decentralised mining network and software
development platform rolled into one that facilitates create
new crypto currencies and programs that share a single
Blockchain".
Architectural Components
-
Node/Client: A node is a device/program that
communicates with the Ethereum network. Nodes are also known
as clients. Software that can act as an Ethereum node
include Parity, Go-Ethereum, etc.
-
Block: A block is a package of data that has zero or
more transactions, the hash of the previous block, and
optionally other data.
-
Miners: Miners will add the block to the Blockchain.
Miners are simply nodes in the ethereum network who find new
block, confirm transactions and commit new transactions in a
block
-
Proof of work: Proof of work is an activity that
miners undertake to write transactions to a new block. It
refers to a mathematical value that can act as the proof of
having solved a resource and time-consuming computational
problem such as finding nonce in Ethereum (Ethash POW
Algorithm by Ethereum).
-
Ethereum Virtual Machine: Ethereum Virtual Machine is
the decentralized computing platform which forms the core of
the Ethereum platform.
-
Smart Contract: A persistent piece of code on the
Ethereum Blockchain that has a set of data and executable
functions. These functions execute when Ethereum
transactions are made to them with certain input parameters.
Based on the input parameters, the functions will execute
and interact with data within and outside of the contract.
-
Ether: Ether is the name of the currency used within
Ethereum Network. Miners are rewarded with ethers for
providing computing power for finding a new block and
confirming new transaction of Smart contracts. Ether is used
to pay for computations within the EVM.
-
Gas: Refers to the pricing value required to
successfully perform a transaction or execute a smart
contract on the Ethereum Blockchain platform. It is also the
name for crypto-fuel that is consumed when code is executed
by the EVM. The gas is paid as execution fee for every
operation made on an Ethereum Blockchain.
-
Gas Limit: The gas limit represents the maximum
amount of gas you are willing to pay for a smart contract
transaction execution.
-
Mining Pool: Mining pool are simply groups of miners
that work together to mine blocks for ethereum network.
-
Main-net: A main-net is a main Ethereum Blockchain
network.
We hope that you understood the architectural components, now
let's discuss Ethereum Toolchain:
Ethereum Client
Ethereum Client Refers to any node able to parse and verify
new transaction, execute smart contract and find new block for
the blockchain. It also allows you to provide interfaces to
create transactions and mine blocks which is the key for any
Blockchain interaction.
List of Nodes/Clients
Tool |
Language |
go-ethereum |
Go |
Parity |
Rust |
cpp-ethereum |
C++ |
pyethapp |
Python |
ethereumjs-lib |
Javascript |
Ethereum(J) |
Java |
ruby-ethereum |
Ruby |
ethereumH |
Haskell |
List of Ethereum SDK's
To interact with node/client of Ethereum Network, different
libraries (SDK's) are available such as:
Tool |
Language |
web3.js |
Go |
web3j |
Java |
Nethereum |
C#,.Net |
ethereum-ruby |
Ruby |
These libraries allows you to interact with a local or remote
ethereum node, using a HTTP or IPC connection.
Decentralized Application (DApp):
It is an Application that operates without a central trusted
party. An application that enables direct
interaction/agreements/communication between end users and/or
resources without a middleman. To develop a Dapp we need to
know Solidity (learn more about solidity
https://solidity.readthedocs.io).
How Ethereum Network works:
-
Key components of Ethereum blockchain constitutes: Clients,
Transaction Pool, Miners, Mining Pool, Ethereum Virtual
Machine, SDK's etc.
-
Journey started by Vitalik Buterin (co-founder of Ethereum)
by creating first ethereum block called as Genesis Block
(First block in Blockchain).
-
Ethereum client/nodes can be used to interact with the
Ethereum Blockchain via Ethereum SDK’s like: Web3.js,
Web3j etc. Using clients one can create transaction,
broadcast the transaction, read the data of block, get the
ethereum account balance etc.
- Client broadcast's transaction to its peer.
- Peers can be another node or miners.
-
When the transaction is broadcasted to the network,
transaction goes to every peer's Transaction Pool and Mining
pool.
-
Miners pick the transaction from Mining pool having greater
transaction solving fees (Gas), Miner solves the
mathematical computation and broadcast the proof of work.
-
Other miners validate the nonce given by miner and if the
nonce is correct then miner add the block to the Blockchain.
Conclusion
-
Ethereum is an open source Blockchain Platform, which
provides the functionality to the developer for deploying
DApps.
-
Using Ethereum clients we can create, deploy and access the
Ethereum Blockchain.
-
Different Architectural Components works together to form a
complete Ethereum network which is globally distributed and
decentralised with no central authority.