Getting Started on EOSIO
Tags: blockchain, eosio, smartcontracts
Published: 2018-12-26 16:14:04

---
title: Getting Started on EOSIO
published: true
description: A quick get-started on EOSIO.
tags: #Blockchain, #EOSIO, #Smart Contracts
---

A few months ago, I got intrigued with the Blockchain hype. Well, it really is not a hype, but that's what I thought of it, back then.

Being the adventurous me, I threw myself all in. At that time, EOS was just about to launch. So I settled on EOS. A couple of months later, I can be glad to say it was not a wasted effort, and neither was it a wrong decision.

The EOSIO Community is one of the best I have ever been lucky to be part of. Within a very short while, I was up to speed, thanks to the various developers who helped me catch up to speed. 

Honestly, the help and advice I received from the likes of [@cc32d9](https://github.com/cc32d9) got me further than I would on my own. Thanks, man.

Okay, okay. So enough of my ranting about me, let's get started!

You want to get onto the blockchain bandwagon, but have no idea what it's all about? Perhaps this post is for you. Grab your favourite cup of coffee, and let's get going.

### What is Blockchain?
So, to start with the very basics, the blockchain is an incorruptible digital ledger.
On this ledger, we can store transactions of anything and everything of value.

##### So, wait, is it true that we can use blockchain technology to store transactions other than monetary ones? But Bitcoin....

The answer is YES. We can store other transactions other than monetary ones. Your'e right, Bitcoin is a blockchain. But blockchain is not Bitcoin. Bitcoin is one of the implementations of blockchain.

[Here ](https://www.youtube.com/watch?v=3xGLc-zz9cA) is a Video with a good explanation. [Here](https://www.youtube.com/watch?v=SSo_EIwHSd4)is another, and yet [another](https://www.youtube.com/watch?time_continue=83&v=27nS3p2i_3g)


Now that you have understood what a blockchain is essentially, we can get a bit adventurous.

We shall set up a test EOS node on our local machine.

#### My Environment
* Linux Mint 19.1
* 8 GiB RAM
* 256 GiB SSD

Here is a list of officially supported setups (as at the time of writing):
* Amazon 2017.09 and higher
* Centos 7
* Fedora 25 and higher (Fedora 27 recommended)
* Mint 18
* Ubuntu 16.04 (Ubuntu 16.10 recommended)
* Ubuntu 18.04
* MacOS Darwin 10.12 and higher (MacOS 10.13.x recommended)

There are 2 (or possibly 3) ways of getting the EOSIO software on your machine, but I will focus on 2. The first is cloning and compiling the EOSIO software from their GitHub Repo. The second is downloading the pre-compiled binaries and installing them on my machine.

##### Compiling
###### NOTE: You shall need 8 GiB or more of RAM and 20 GiB of disk space to get through with this step. (Though if you know what you're doing, you can edit the build script to skip checking these conditions.)
To achieve this, clone the EOSIO/eos repo;
`git clone https://github.com/EOSIO/eos --recursive`

This may take a while (Now, that cup of coffee may come in handy here :))
Once you're through with the cloning, navigate into the cloned folder.

There are automatic build and install scripts in there. Be sure to run `sudo ./eosio_build.sh && sudo ./eosio_install.sh`

If all goes well, (if you're using one of the above officially supported platforms, I don't foresee any difficulties), you shall have the eosio installed within your system.

To uninstall, just issue `sudo ./eosio_uninstall.sh` from the **eosio** root directory.

To check if all went well, just type `nodeos -h`. If your screen spews out some long output, you're safe.

##### Installing from Pre-compiled Binaries
So what if I do not have 8 GiB of RAM to spare? You may have to use the [pre-compiled binaries](https://github.com/EOSIO/eos/releases)
The latest release tag is `1.6.0-rc1` at the time of writing. Download the appropriate binary for your distribution.
See some examples below:

**Mac OS X**
`brew tap eosio/eosio`
`brew install eosio`

**Ubuntu 18.X and all flavors based off of Ubuntu 18.X**
`wget https://github.com/EOSIO/eos/releases/download/v1.6.0-rc1/eosio_1.6.0-rc1-ubuntu-18.04_amd64.deb`
`sudo apt install ./eosio_1.6.0-rc1-ubuntu-18.04_amd64.deb`

**Centos** 
`wget https://github.com/EOSIO/eos/releases/download/v1.6.0-rc1/eosio-1.6.0-rc1.el7.x86_64.rpm`
`sudo yum install ./eosio-1.6.0-rc1.el7.x86_64.rpm`


**Fedora**
`wget https://github.com/EOSIO/eos/releases/download/v1.6.0-rc1/eosio-1.6.0-rc1.fc27.x86_64.rpm`
`sudo yum install ./eosio-1.6.0-rc1fc27.x86_64.rpm`


Be sure to test your installation by issuing `nodeos -h` on your favorite terminal. We expect some long output on your screen. If not, you may need to go over the above installation steps again.

#### Development
Once you have the EOSIO software installed on your machine, create your working directory.

`mkdir project && cd projects`

Spring up your node with:
```nodeos -e -p eosio \
--plugin eosio::producer_plugin \
--plugin eosio::chain_api_plugin \
--plugin eosio::http_plugin \
--plugin eosio::history_plugin \
--plugin eosio::history_api_plugin \
--data-dir data \
--access-control-allow-origin='*' \
--contracts-console \
--http-validate-host=false \
--verbose-http-errors \
--filter-on='*'```

You should be able to see some output speeding down your terminal. Guess what? You are actively producing blocks!
So before we get too excited and miss to understand what we have just done, let's pause and review what has just happened.

The above command spins up a node with the various flags as we have specified above.
This loads all the basic plugins, sets the server address, enable CORS and adds some contract debugging and logging, altogether with a directory for writing the data.

In the second part of this walkthrough, we shall move further, create wallets, keys, accounts as well as deploy several smart contracts on our local node.

See you then!