Ethereum is a general-purpose blockchain that is geared toward describing business logic, through advanced scripts, also known as smart contracts. Ethereum was designed with a broader vision, as a decentralized or world computer that attempts to marry the power of the blockchain, as a trust machine, with a Turing-complete contract engine. Although Ethereum borrows many ideas that were initially introduced by bitcoin, there are many divergences between the two.
The Ethereum virtual machine and smart contracts are key elements of Ethereum, and constitute its main attraction. In Ethereum, smart contracts represent a piece of code written in a high-level language (Solidity, LLL, Viper) and stored as bytecode in the blockchain, in order to run reliably in a stack-based virtual machine (Ethereum Virtual Machine), in each node, once invoked. The interactions with smart contract functions happen through transactions on the blockchain network, with their payloads being executed in the Ethereum virtual machine, and the shared blockchain state being updated accordingly.
For those who are not familiar with blockchain technology reading History and Evolution of Blockchain Technology from Bitcoin article is strongly recommended. Also, if you wish to learn and practice Hyperledger blockchain development, visit Comprehensive Hyperledger Training Tutorials page to get the outline of our Hyperledger tutorial articles.
We have written two groups of recipes to explore Ethereum and Solidity coding in details. First group covers the following nine tutorials:
- Introduction to Ethereum Blockchain Development with DApps and Ethereum VM
- Building Auction DApp With Ethereum and Solidity Programming Language
- Working with Ethereum Blockchain Applications through Remix IDE
- Building Bidding Form in Web3js for Ethereum Auction DApp
- Working with web3js API and JSON to Build Ethereum Blockchain Applications
- Deployment Environments for Managing Ethereum Smart Contracts
- Work with Ethereum Private Network with Golang with Geth
- Compiling and Deploying Ethereum Contracts Using Solidity Compiler
- Running Ethereum Auction DApp and Solidity Tips
In summary, you learn about how to set up and configure Ethereum and develop blockchain applications using Solidity coding language. We explore its essential components such as smart contracts and Web3.JS API via an Auction Decentralized Application (DApp) step-by-step.
In second group, we will discuss more advance topics in Ethereum blockchain development and solidity while building a Tontine DApp game step-by-step. In particular, we discuss Truffle and Drizzle. For example, we show you how a tool such as Truffle can be an assistant in building, testing, debugging, and deploying DApps. In short, we are going to cover four main topics:
- Exploring the Truffle suite
- Learning Solidity's advanced features
- Contract testing and debugging
- Building a user interface using Drizzle
The 2nd set consists of 8 recipes as follows:
- Install Truffle and Setup Ganache for Compiling Ethereum Smart Contracts for Tontine DApp Game
- Run Tontine Ethereum DApp Game Contract
- Design Tontine Ethereum DApp Game Interfaces
- Contract Interactions between Ethereum and Solidity via Tontine DApp Game
- Work with Truffle Unit Testing in Tontine DApp Game
- Debugging with Truffle and Ethereum Remix in Tontine DApp Game
- Building Frontend Application for Tontine DApp Game with Drizzle
- Running and Playing Tontine Ethereum DApp Game
As a reminder, understanding and finishing the first group of recipes are required prior to working on second one.
Here are a few more hands-on tutorials covering advance topics in Ethereum blockchain development: Building Enterprise Blockchain-as-a-Service Applications Using Ethereum and Quorum, Harness the Power of Distributed Storage IPFS and Swarm in Ethereum Blockchain Applications, and Blockchain Developer Guide- How to Build Ethereum Financial Applications With Java and Web3J API Through Blockchain Oracles