How to set up your Ethereum development environment for PC

Ebenezer Ackon
Interfacing with an Ethereum Blockchain
4 min readJan 10, 2019

A huge portion of the blockchain community are using MacOS or Linux systems. It’s easy for a Windows user to feel neglected. In this article, I will introduce the proper tooling and show you how to prepare your PC for writing smart contracts and interfacing with the Ethereum blockchain.

Necessary Tools

  1. Powershell
    Powershell is a very powerful tool that should be installed by default on your windows computer (at least if you’re using windows 8 and above). We’ll use it mainly as a terminal to accept unix commands and to install packages. As mentioned previously, most of the community uses unix based systems and command prompt won’t cut it. Being able to adapt will save a lot of headache in the long run.
  2. Visual Studio Code
    Visual Studio Code is my code editor of choice when it comes to writing smart contracts. It’s super lightweight, full of extensions created by the community, and has powerful debugging tools. Obviously opinions may differ when it comes to which code editor or IDE to use. The final decision is yours.
  3. Geth (Go Ethreum)
    Geth is the the command line interface for running a full Ethereum node implemented in Go. It allows you the ability to do practically anything you would need to do on the blockchain (commands listed here).
  4. Ganache
    Ganache is a blockchain emulator that allows you to run tests, execute commands, and inspect state while controlling how the blockchain operates. Ganache was called Test RPC in the past, but the developers learned from Android that tasty dessert names are more appealing. The blockchain you create is personal, has user friendly UI, and runs quickly in memory.
  5. NPM
    NPM is a package manager for Node.js files. We’ll be using this to download dependencies like Truffle.
  6. Truffle
    Truffle is an awesome tool that makes the developer’s job much easier. It’s provides a testing framework, smart contract compilation, linking, deployment, and much more. It also handles a lot of boilerplate for you when you get into the realm of using boxes.

Lets start

1. Make sure Powershell is on your computer. If not, installation instructions will vary by system. Install it from the official Microsoft webpage.

2. Install Visual Studio Code .zip from code.visualstudio.com/docs/?dv=win . Go through the installation process.

After Downloading and opening you will need to download the solidity extension to allow you to write in that language.

Add Solidity Extension to Code Editor

Type ‘Solidity’ in the search bar and get the extension with the information listed below, It should be the first one suggested.

Name: solidity
Id: juanblanco.solidity
Description: Ethereum Solidity Language for Visual Studio Code
Version: 0.0.49
Publisher: Juan Blanco
VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=juanblanco.solidity

3. Download Geth
https://geth.ethereum.org/downloads.

close and reopen powershell and confirm geth is installed by checking the version.

geth version

4. Install Ganache
http://truffleframework.com/ganache/

5. Install NodeJS and NPM
https://nodejs.org/en/

node -vnpm -v

6. Install Truffle from Powershell.

npm uninstall -g truffle
npm install -g truffle

It’s best to do a sanity check and uninstall to avoid complications at first. Powershell often has some dependencies already installed but just out of date.

DONE!

Check Version of Tools

The Final Test

  1. Get Balance From one of our generated accounts
  2. Convert that Balance From Wei to Ether

Our Sources:
https://web3js.readthedocs.io/en/1.0/web3-utils.html?highlight=fromwei#fromwei

https://web3js.readthedocs.io/en/1.0/web3-eth.html

In Powershell type in

truffle develop

After a list of the 10 generated accounts are shown, you can select any of the public addresses and use the web3 command to get its balance. All of the generated test addresses will have a balance of 100 Ether, but it will be shown in wei unless we convert it.

web3.eth.getBalance(“[Address]”)

this command prints out the Address’ balanace in wei. To convert it we will take the result and specify it’s conversion type.

web3.utils.fromWei(`[wei value]`, 'ether')
powershell implementation
Ganache connected to same rpc server

--

--