Smart contract on a private blockchain
Let us do some grown-up stuff now. Yes, we are still not going to spend any fiat money to buy ethers to code on a blockchain. Rather we will do the following:
- Write a genesis block file for a private blockchain.
- Create the private blockchain using geth commands.
- Link the private blockchain with the MIST browser.
- Mine the chain to generate our own ethers as rewards.
- Use those ethers to deploy a smart contract on our very own private blockchain.
The pre-requisite tools to be installed are as follows:
- Windows 7 (64-bit) (Instructions are for Windows user, for Ubuntu/Mac refer appendix)
- Cygwin setup-x86_64 (For Bash-Shell on Windows 7) (https://cygwin.com/install.html)
- geth-windows-amd64-1.6.7-ab5646c5 (https://geth.ethereum.org/downloads/)
- Mist-win64-0-9-0 (https://github.com/ethereum/mist/releases)
- Node.js (node-v6.11.2-x64) (https://nodejs.org/en/download/)
- .NET framework 4.5 (https://www.microsoft.com/en-in/download/details.aspx?id=30653)
I am not going into the details of the installation. The installations are pretty straightforward, involving the terms and conditions page (which we never read), followed by blind-surfing of Next and I Agree buttons, and while the installations are going on, watching some random YouTube videos or stand-up comedians to entertain ourselves.
For troubleshooting, Google and the stack exchange are your best friends, ever. Figure 3.21, Figure 3.22, Figure 3.23, Figure 3.24, Figure 3.25, and Figure 3.26 are provided for your reference, to check whether you are on the right track during installation, especially for MIST, geth, Cygwin, and Node.js. The only recommendation is to try to keep all these installation, in one separate folder in a separate drive, apart from .NET framework, so that they do not mess up your main program files. My downloads and installations were inside F:Ethereum_Environment path: