A Beginner's Guide to Coding with Ethereum

One of the great things about a decentralized cryptocurrency is that we can directly connect to the network to make transactions. In this video, we'll talk about the Ethereum protocol and what client we'll use.

Project Source Code

Get the project source code below, and follow along with the lesson material.

Download Project Source Code

To set up the project on your local machine, please follow the directions provided in the README.md file. If you run into any issues with running the project source code, then feel free to reach out to the author in the course's Discord channel.

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.

  • |

Lesson Transcript

  • [00:00 - 00:08] Alright, I think it's time that we start working with Ethereum directly. One of the great things about a decentralized cryptocurrency is that we can connect directly to the network to submit transactions.

  • [00:09 - 00:17] Of course, to make a transaction, you have to have some currency to spend, which we don't have yet. Also, it can be a little daunting to try and learn Ethereum while we're spending money on a production network.

  • [00:18 - 00:23] When coding, we generally develop and test on our own machine before we deploy it to production. In Ethereum, we're going to do the same thing.

  • [00:24 - 00:32] We'll run a single Ethereum node on our own machine to make sure we understand how it works. Later, when we're confident in our code, then we'll deploy it into production.

  • [00:33 - 00:38] For now, let's boot a single private Ethereum node. That way we can test whatever we need without worrying about making mistakes.

  • [00:39 - 00:57] So let's download an Ethereum client, create some accounts, and then send some money between them. One of the first things to know about Ethereum is that it is a protocol, and that means that there are many possible clients that we could use.

  • [00:58 - 01:02] Think of it like this. We send and receive email by using SMTP and Puff.

  • [01:03 - 01:13] You can use any client that you want to. I might use Gmail, you might use Apple Mail or Hotmail, but as long as all of the clients know how to speak the protocol, we can send and receive emails from each other.

  • [01:14 - 01:22] The same thing goes for HTTP. HTTP is an owned by the HTTP company where they can just change the protocol it will to be whatever they want.

  • [01:23 - 01:30] Instead, HTTP is a defined protocol that we all just agree on. You can use whatever browser or code that you want to to communicate to any other service that uses HTTP.

  • [01:31 - 01:37] In the same way, Ethereum itself is a protocol. In one sense, Ethereum is just whatever we all agree it to be.

  • [01:38 - 01:49] And this idea of consensus, defining the rules by which we all agree on something, it comes up all the time in the blockchain space. But for now, the practical implication is that we have several different Ethereum clients we can choose from.

  • [01:50 - 01:55] We're going to be using Go Ethereum, or Geth for short. It's the official Go implementation of the Ethereum protocol.

  • [01:56 - 02:02] And again, you could use any client you want and you could even implement your own. But get this the most popular, so that's what we're going to use.

Alright, I think it's time that we start working with Ethereum directly. One of the great things about a decentralized cryptocurrency is that we can connect directly to the network to submit transactions. Of course, to make a transaction, you have to have some currency to spend, which we don't have yet. Also, it can be a little daunting to try and learn Ethereum while we're spending money on a production network. When coding, we generally develop and test on our own machine before we deploy it to production. In Ethereum, we're going to do the same thing. We'll run a single Ethereum node on our own machine to make sure we understand how it works. Later, when we're confident in our code, then we'll deploy it into production. For now, let's boot a single private Ethereum node. That way we can test whatever we need without worrying about making mistakes. So let's download an Ethereum client, create some accounts, and then send some money between them. One of the first things to know about Ethereum is that it is a protocol, and that means that there are many possible clients that we could use. Think of it like this. We send and receive email by using SMTP and Puff. You can use any client that you want to. I might use Gmail, you might use Apple Mail or Hotmail, but as long as all of the clients know how to speak the protocol, we can send and receive emails from each other. The same thing goes for HTTP. HTTP is an owned by the HTTP company where they can just change the protocol it will to be whatever they want. Instead, HTTP is a defined protocol that we all just agree on. You can use whatever browser or code that you want to to communicate to any other service that uses HTTP. In the same way, Ethereum itself is a protocol. In one sense, Ethereum is just whatever we all agree it to be. And this idea of consensus, defining the rules by which we all agree on something, it comes up all the time in the blockchain space. But for now, the practical implication is that we have several different Ethereum clients we can choose from. We're going to be using Go Ethereum, or Geth for short. It's the official Go implementation of the Ethereum protocol. And again, you could use any client you want and you could even implement your own. But get this the most popular, so that's what we're going to use. [BLANK_AUDIO]