Setting Up Your Development Environment For Ethereum Smart Contracts | Ep 1


Hi guys, welcome to the first episode of
Eat The Blocks. Today we are going to set
up our development environment for
developing Ethereum smart contract so
before we go any further I’d like you to
make sure that you already have nodejs
installed and if possible it’ll be
better if you have installed the latest
version which is at the time of this
recording is 8.9 . Oh and by the way
this version is LTS which means Long
Time Support which mean that it’s stable
and good to use for production so if you
want to make sure that you won’t have
any problem with the next tutorials you
can just install this version or upgrade
your current version to this version.
Next we need a programming language to
compile our smart contract into bytecode
that the Ethereum virtual machine can
understand. There are different options
but by far the most popular is a
programming language called solidity.
Solidity has a main implementation
written in C++ but for our convenience
it’s also embedded in different
programming language including
JavaScript and nodejs so we’re just
going to use a NPM package. So we’re
going to jump to a console here okay and
we’re going to install the Solidity
compiler for nodejs so type npm
install -g and then solc which is just
the name of the NPM package for the
Solidity compiler. So I’ve already
installed it on my computer so you’re
not going to see anything spectacular. So
wait a bit… so one important thing to
note here is that I specify to use the
global flag
so that you can use the Solidity
compiler for different projects and you
won’t need to reinstall it for each
project. But if you want you can just
install it locally. So to check that the
installation worked you just need to
type solc I think is that js and I
just press ENTER and see what it does
say wait a bit.. “Must provide a file” ok it
works so it means that I have it
installed. So if you see something like
“this command cannot be found” it means
that there is a problem with your
install and you need to figure that out.
Okay so now we’ve installed the Solidity
compiler so another thing we can do is
set up syntax highlighting in your text
editor. So for the example I’m going to
use Visual Studio code which is a modern
text editor by Microsoft which is very
good for web development and JavaScript.
So..so first I’m going to click on the
extension menu then I’m going to search
for the Solidity extension… okay so
that’s the first one.
So I’ve already installed it on my
computer but if you haven’t you will see
this green button here, install, so you
just click it and it’s going to install it
and after there will be another button
which is reload and after you reload it
your text editor then you’re going
to enable the extension. So now that its
installed let’s test it on a Solidity contract
So I go here into file explorer
and click on this contract. Lets enlarge this
a little bit. Ok and so we can see
that my text editor recognized the
syntax of Solidity so it worked yeah
and we also have some
some…some suggestion here yeah okay it works. So
if you have other text editors such as
Sublime text or Vim you can also find
some extension for Solidity syntax
highlighting. Next you need an Ethereum
client to be able to communicate with
the network so with Ethereum you have
many different options there are
implementations in many different
languages.
The main implementation is written in Go
the second most used one is written in
Rust and they are also implementation
written in JavaScript or in Python. For
most of those implementations you can
choose to connect either to the mainnet,
which is the production network or you
can choose to connect to the testnet,
which is as its name imply, a network
used for testing and for developing.
However I found that there is something
even better than actually a lot of people don’t
know. It’s a sort of a blockchain
simulator written with nodejs, that mimic
perfectly all the features of a normal Ethereum client. But it doesn’t actually
connect to a testnet. It just run a
blockchain in memory and when you launch
the network it creates some test accounts
that you control and when you, mmm, when you
stop the process then everything is
forgotten, and you can just restart
the blockchain as many times as you
want so that’s really the option that
offer the most flexibility and I really
recommend to use this for your
development. For our tutorial on Eat The
Blocks it’s what we’re going to use. So
let’s jump to the console and install it.
There is an NPM package for it so
npm install again we set the global ethereumjs-testrpc
okay let’s wait a bit. Again
I’ve already installed it before so it’s
just going to tell me that I already
have it but for you it’s going probably
going to take a bit more time and once
it has installed then we again going to
check that it’s working well. So if you
want to check that it’s working well
then this time the command-line is not
reading intuitive
it’s called testrpc so testrpc enter.
Okay cool it works so here we can see
that it created some accounts for me here.
So I will be able to use all those
accounts for my development and below we
can see that it also give me all the
private keys. So means that I control
those accounts yeah. And it’s listening
on localhost port 8545. Okay that’s cool.
Great we have everything we need.
First we have the Solidity compiler and
then we have an Ethereum testnet
client. Both of them are NPM global
package so you can use them easily
across different projects. So for our next
project we’re going to create our
obligatory HelloWorld smart contract. So
stay tuned if you want to learn about
this. If you like this channel, please
subscribe. Thank you see you for the next
episode. Bye bye!

Add a Comment

Your email address will not be published. Required fields are marked *