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 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".
- 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 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
List of Ethereum SDK's
To interact with node/client of Ethereum Network, different libraries (SDK's) are available such as:
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.
- 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.