Blockchain Ethereum Development Guide from A to Z
Tags: blockchain, ethereum, javascript, solidity
Published: 2019-07-22 18:38:04

<p>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.<br>
  Solidity is an <a href="https://weg2g.com/application/touchstonewords/article-object-oriented-programming-topics-that-any-software-engineer-need-to-know.php">object-oriented</a>, high-level language for implementing smart contracts. Smart contracts  are programs which govern the behavior of accounts within the Ethereum state. Solidity  was influenced by <a href="https://weg2g.com/application/touchstonewords/article-what-is-c-object-oriented-programming-language-and-how-and-where-to-use-it.php">C++</a>, <a href="https://weg2g.com/application/touchstonewords/article-what-is-python-programming-language-and-how-and-where-to-use-it.php">Python</a> and <a href="https://weg2g.com/application/touchstonewords/article-what-is-javascript-programming-language-and-why-it-is-very-popular.php">JavaScript</a> and is designed to target the Ethereum Virtual Machine (EVM). Solidity  is statically typed, supports inheritance, libraries and complex user-defined  types among other features. With Solidity you can create contracts for uses  such as voting, crowdfunding, blind auctions, and multi-signature wallets.<br>
  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.<br>
  <br>
  For those who are not familiar with blockchain technology reading <a href="https://myhsts.org/tutorial-history-and-evolution-of-blockchain-technology-from-bitcoin.php">History  and Evolution of Blockchain Technology from Bitcoin</a> article is strongly recommended. Also,  if you wish to learn and practice Hyperledger blockchain development, visit <a href="https://myhsts.org/tutorial-comprehensive-blockchain-hyperledger-developer-guide-for-all-professional-programmers.php">Comprehensive  Hyperledger Training Tutorials</a> page to get the outline of our  Hyperledger tutorial articles. </p>
<p>We  have written two groups of recipes to explore Ethereum and Solidity coding in  details. First group covers the following nine tutorials:</p>
<ul>
  <li><a href="https://myhsts.org/tutorial-learn-about-ethereum-blockchain-development-with-dapps-and-ethereum-vm.php">Introduction to Ethereum Blockchain  Development with DApps and Ethereum VM</a></li>
  <li><a href="https://myhsts.org/tutorial-learn-how-to-build-auction-dapp-with-ethereum-and-solidity-programming-language.php">Building Auction DApp With Ethereum and  Solidity Programming Language</a></li>
  <li><a href="https://myhsts.org/tutorial-learn-how-to-work-with-ethereum-blockchain-applications-through-remix-ide.php">Working with Ethereum Blockchain  Applications through Remix IDE</a></li>
  <li><a href="https://myhsts.org/tutorial-learn-how-to-build-bidding-form-in-web3js-for-ethereum-auction-dapp.php">Building Bidding Form in Web3js for  Ethereum Auction DApp</a></li>
  <li><a href="https://developer.ibm.com/recipes/tutorials/working-with-web3js-api-and-json-to-build-ethereum-blockchain-applications/">Working with web3js API and JSON to  Build Ethereum Blockchain Applications</a></li>
  <li><a href="https://dev.to/weg2g/deployment-environments-for-managing-ethereum-smart-contracts-16ha">Deployment Environments for Managing  Ethereum Smart Contracts</a></li>
  <li><a href="https://myhsts.org/tutorial-learn-how-to-work-with-ethereum-private-network-with-golang-with-geth.php">Work with Ethereum Private Network with  Golang with Geth</a></li>
  <li><a href="https://myhsts.org/tutorial-learn-how-to-compile-and-deploy-ethereum-contracts-using-solidity-compiler.php">Compiling and Deploying Ethereum  Contracts Using Solidity Compiler</a></li>
  <li><a href="https://myhsts.org/tutorial-learn-how-to-run-ethereum-auction-dapp-with-some-solidity-tips.php">Running Ethereum Auction DApp and  Solidity Tips</a></li>
</ul>
<p>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. <br>
  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: </p>
<ul>
  <li>Exploring the Truffle suite</li>
  <li>Learning Solidity's advanced features</li>
  <li>Contract testing and debugging </li>
  <li>Building a user interface using Drizzle</li>
</ul>
<p>The 2nd  set consists of 8 recipes as follows:</p>
<ul>
  <li><a href="https://myhsts.org/tutorial-learn-how-to-install-truffle-and-setup-ganache-for-compiling-ethereum-smart-contracts-for-tontine-dapp-game.php">Install Truffle and Setup Ganache for  Compiling Ethereum Smart Contracts for Tontine DApp Game</a></li>
  <li><a href="https://myhsts.org/tutorial-learn-how-to-run-tontine-ethereum-dapp-game-contract.php">Run Tontine Ethereum DApp Game Contract</a></li>
  <li><a href="https://myhsts.org/tutorial-learn-how-to-design-tontine-ethereum-dapp-game-interfaces.php">Design Tontine Ethereum DApp Game  Interfaces</a></li>
  <li><a href="https://myhsts.org/tutorial-learn-about-blockchain-contract-interactions-between-ethereum-and-solidity-via-tontine-dapp-game.php">Contract Interactions between Ethereum  and Solidity via Tontine DApp Game</a></li>
  <li><a href="https://developer.ibm.com/recipes/tutorials/work-with-ethereum-solidity-and-truffle-unit-testing-in-tontine-dapp-game/">Work with Truffle Unit Testing in  Tontine DApp Game</a></li>
  <li><a href="https://dev.to/weg2g/debugging-with-truffle-and-ethereum-remix-in-tontine-dapp-game-20mi">Debugging with Truffle and Ethereum  Remix in Tontine DApp Game</a></li>
  <li><a href="https://myhsts.org/tutorial-learn-how-to-build-frontend-blockchain-application-for-Ethereum-dapp-game-with-drizzle.php">Building Frontend Application for Tontine  DApp Game with Drizzle</a></li>
  <li><a href="https://myhsts.org/tutorial-learn-how-to-run-and-play-tontine-ethereum-dapp-game.php">Running and Playing Tontine Ethereum  DApp Game</a></li>
</ul>
<p>As a reminder, understanding and finishing the first group  of recipes are required prior to working on second one.  <br>
  <br>
  Here are a few  more hands-on tutorials covering advance topics in Ethereum blockchain  development: <a href="https://blockchain.dcwebmakers.com/blockchain-as-a-service-apps-using-ethereum-and-quorum.html">Building Enterprise  Blockchain-as-a-Service Applications Using Ethereum and Quorum</a>, <a href="https://blockchain.dcwebmakers.com/work-with-distributed-storage-ipfs-and-swarm-in-ethereum.html">Harness the Power of Distributed  Storage IPFS and Swarm in Ethereum Blockchain Applications</a>, and <a href="https://myhsts.org/ethereum-financial-app-with-java-and-web3j-api-through-blockchain-oracles.html">Blockchain Developer  Guide- How to Build Ethereum Financial Applications With Java and Web3J API  Through Blockchain Oracles</a></p>
<p>&nbsp;</p>
<p><strong>About Authors</strong><br>
  This article  is written by Matt Zand (Founder of <a href="https://myhsts.org">High School Technology Services</a>, <a href="https://hashflow.us">Hash Flow</a>, and <a href="https://coding-bootcamps.com">Coding Bootcamps</a>) in collaboration with Brian Wu who is an advisor at <a href="https://blockchain.dcwebmakers.com/">DC Web Makers</a>. </p> </p>