Let’s start working with Ethereum directly.
One of the great things about a decentralized cryptocurrency is that we can directly connect to the network to make transactions.
Of course, to make a transaction, you have to have some currency to send, which we don’t have yet. Also, it can be a little daunting to try and learn Ethereum while we’re spending real money on the production network.
When coding, we generally develop and test our code on our own machine before deploying it to production. In Ethereum, we’ll do the same thing – we’re going to run a single Ethereum node on our machine and make sure we understand how it works.
Later, when we’re confident in our code, we can deploy it to production.
In fact, if you’re like me, you probably deploy your code to a “staging” environment – a testing environment that more closely mirrors production. Ethereum has networks for this too, but we’ll talk about those details later.
For now, let’s boot a single, private Ethereum node and then we can test whatever we need, without worrying about making mistakes.
So let’s download an Ethereum client, create some accounts, and then send money between them.
One of the first things to know about Ethereum is that it’s a protocol. That means that there are many possible clients that you can use.
We send and receive email using the protocols SMTP and POP, but you can use any email client that you want to. I use GMail, but maybe you use Apple Mail, or Hotmail. As long as everyone agrees on a format for sending and receiving emails, it doesn’t matter what client you use.
The same thing goes for HTTP. HTTP isn’t owned by the HTTP-company, where they can change it at will. Instead, HTTP is a defined protocol, that we all just agree on. You can use whatever browser (or code) that you want to communicate with anything else that uses HTTP.
In the same way, in one sense, Ethereum is just whatever we all agree on it to be.
This idea of consensus defining what something is comes up a lot in the blockchain space. But for now, the practical implication is that you can choose from several different Ethereum clients.
We’re going to be using Go Ethereum or, geth, for short. It’s the official Go implementation of the Ethereum protocol. Again, you could use any client you want and you could even implement your own, but, geth is the most popular, and so that what we’re going to use.