PART 1: Installing Geth THE RIGHT WAY | "Create your own Ethereum Blockchain" series
Hello everyone!
Blockchain will change the world. It really will.
It's actually changing blogging and this is just the beginning.
And it might even change your world if you can use this amazing tool.
Unfortunately a lot of people are struggling with the basics, they try to follow documentations and most of the time they find it confusing. Sometimes the documentation is obsolete, sometimes it is very difficult to understand but here is the thing about documentations.
The biggest problem with them is that they present a subject through the eyes of the writer, that means that the writer assumes that you know things you might not know.
In programming especially, everyone comes from different backgrounds and so everyone has different levels of conception of the same things.
So from my eyes you know nothing . [John Snow]
I assume that simple fact and I hope you will enjoy learning with me.
By the way I have a youtube channel where I teach people how to program smart contracts
So let’s go!
What is Ethereum
First things first, a blockchain like Ethereum is a decentralised database which has a consensus mechanism (basically the rules upon which data is being appended and verified as legit in the database) and a virtual machine called Ethereum Virtual Machine or EVM (basically a computer within a computer) that will execute instructions that are given to it, from a smart contract for instance. So nobody cheats, and everyone has the same virtual computer.
Ethereum as a blockchain has different clients. A client is a program that will run on your computer and connect to other clients on other computers, called peers. [but you can very well spawn a lot of peers on your computer and connect them together] When you do that you become an Ethereum node. How cool! By the way the client has all the Ethereum package built-in, so the database and the EVM.
A blockchain network is thus a network of peers connected together :)
So why are there different clients?
Because people are different and they all like to make things differently. Some like a specific programming language, some like performance or design over performance...
There are several flavours of the official Ethereum implementation. There are also forks, meaning custom modification of Ethereum like Monax or Quorum.
For example we have a client written in Golang (the most popular and the one we will use), a client written in Python (python is very known and is taught in universities so if you want to learn how a blockchain works from inside this might be your best choice), one in C++, one in Rust... You’ve got the idea!
My personal preference goes with the one written in Rust and called Parity but since it is more complex we’ll use the one written in Golang (commonly called Go) and called Geth.
In this article we will install a Geth CLI (Command Line Interface). That means that you will be able to do stuff with Ethereum from terminal like a pro :)
Installing Homebrew (only for mac users)
If you're not on mac, you should.
No I'm kidding, you can use whatever platform you want, but we developers usually work on Mac Os. The main reason is because we can use unix based commands and that we have all the user friendliness of Mac systems. Additionally Mac Os has a lot of awesome tools for developers like package managers for instance. A package manager is a program that allows us to download other programs in a very easy fashion.
Speaking of package managers, we will use Homebrew.
So open your terminal! You can find it by clicking on the Launchpad.
Once it's open go to this website and follow the instructions in order to install homebrew.
https://brew.sh/
Done? Great!
Installing Geth
Installing Geth with Homebrew is easy. Just open your terminal and type:
$ brew update && brew upgrade
- By the way the $ sign means that we are typing the commands in the terminal, so please do not copy-paste that
- The && expression means finish the first command first then run the second
It will take a while and update your homebrew.
Homebrew doesn't know every program in the world, especially Ethereum, and where it can be found, but we can help it.
Just type
$ brew tap ethereum/ethereum && brew install ethereum
After a while you should have Ethereum installed!
You can verify it by typing:
If you have a similar path then you have it, you have Geth! :D
PS: If you are on Windows you can directly install the executable here https://geth.ethereum.org/downloads/
PS2: If you are on Linux you are a big boy and can manage installation on your own following the guide here :) https://www.ethereum.org/cli
Additionally you can type:
This will give you the version of your Geth and all the commands that you can use with it!
Conclusion
So this is it, you've installed Geth and are ready for the next chapter where we will be gething around. Hopefully, by the end of those series of tutorials you will become an Ethereum command line Ninja.
If you found this article useful, feel free to vote and share!
Also feel free to visit my youtube channel for more action: https://www.youtube.com/channel/UCsVoOobxAQL6NbWY2t6E6Sg
good videos thanks !
I follow and resteem, best guide on blockchain I've ever seen.
This is a good post, will check your youtube station out too, thanks.
Dont forget to check out my post for a link to collect free crypto..a once in a life time opportunity.
Thank you so much for posting! Blockchain programming through the mac os terminal... I'm on the verge of trying this out. Lately I've been spending so much time researching and really grappling with the implications that blockchain technology will have on our day to day lives and how I can use this knowledge to be financially secure. Currently, I live on the USA territory of Guam. History is being made, and one of the uses of blockchain tech that I haven't heard much about is secure voting. I want to develop an ether based token that can be issued and a vote determined by how that token is spent. Do you have any thoughts?
Great post, following you on YT and Steemit. See you in the FB Ethereum Developers Group!
great video ! Easy to follow
I am a software developer and I was so much confused about how to start working on ethereum. Your videos are really useful @vladwulf. Thank you :)
This is a very helpful article, thank you for introduction about ethereum and blockchain as well