Simple chart of how smart contract and web tools work together on Ethereum

in #ethereum7 years ago

I just dive into developing "Ethereum Smart Contract". I started with "Web3.js" because I have some web developing experiences and before too long I found "Truffle", a framework provides convenient developing environment(configuration, compiling, deploying, testing...) of Smart Contract. I realize that there are many options of tools and methods to develop a good Smart Contract, but I should understand how they work exactly before I can use them correctly and efficiently.

Therefore, I draw a chart as below, trying to illustrate how the web and Ethereum components work together to run a Smart Contract. I list brief descriptions and links to the website or document for every major components.(my notes actually) I thought I must share this chart in order to measure I have right understanding and gather feedback for any missing part of it…PLEASE LET ME KNOW IF YOU HAVE ANY COMMENTS. :)

Ethereum Web technology stack.png

Key components in the chart


Solidity - A Commonly used programming language to write Ethereum Smart Contract that runs on EVM.

Truffle - A development environment, testing framework and asset pipeline for Ethereum, aiming to make life as an Ethereum developer easier.

Web3.js - JavaScript API for Ethereum clients, under the hood it communicates to a local node through RPC calls.

RPC - JSON RPC API for for Ethereum client.

testrpc - A Node.js based Ethereum client for testing and development.

EVM - The Ethereum Virtual Machine (EVM) is the runtime environment for smart contracts in Ethereum.

cpp-ethereum - The C++ Ethereum client.

Geth - The golang Ethereum client.

ethereumj - The Java Ethereum client.

Other References


Ethereum Wiki - Including a complete index of Ethereum developing resources.

The Hitchhiker’s Guide to Smart Contracts in Ethereum by Manuel Aráoz

Ethereum for web developers by Mahesh Murthy

My Token / ICO / Blockchain Capital Markets Landscape by Etienne Brunet