Ethereum’s Solidity 101: Part 1 — Nodes, Clients and Networks

Barry Lavides
2 min readDec 14, 2017

--

This tutorial assumes that you already know what a blockchain is and why Ethereum is the most convenient blockchain protocol to create and deploy a smart contract right now, if not, then you can start by reading these five part article about Product Manager’s Guide to the Blockchain

Before we dive in on writing the actual codes, let’s define first the things that composed a working Ethereum blockchain.

First, we have the Ethereum node. Just like a vault in a bank, node in Ethereum or in any other blockchain is a computer where you store a copy of the blockchain. A node can be disconnected or connected to other nodes thus participating in the formation of the Ethereum network.

Types of Ethereum nodes:

  • Full node
  • Lightweight node
  • Mining node

In this tutorial, we will be using all the three types of nodes, but more on it later.

Second we have the Ethereum node client. Just like a teller in a bank, a client provides an interface to access the node. So basically, a client is a software that can parse and explore a blockchain. It also provides interfaces to create transactions and mine blocks. A client can be tightly coupled with a full node or it can be a standalone software that connects to one or more nodes.

Examples of Ethereum node clients:

  • Metamask
  • Mist
  • Geth
  • Web3

There are other Ethereum node clients out there but I only listed the ones that we are going to use in this tutorial.

Third we have the Ethereum network. Just like a network of banks, Ethereum network is basically just a group of connected nodes that share the same protocol.

Types of Ethereum networks:

  • Private test network e.g testrpc
  • Public test network e.g Ropsten, Rinkeby and Kovan
  • Main network (Homestead)

Understanding the type of network that your node is connected to is very important when starting to do Ethereum or other blockchain development.

Now let’s recap the three components that make up the Ethereum blockchain. First we have the (1)node, a node can be a participant of a (3)network or not, and to access the node, we use software (2)clients that provides interface to access the node.

On the next part of this tutorial, we will use an emulator called testrpc, it will serve as our node in our local machine, and since we are just going to use it for development, it will not be participating in any public network . For our node client, we will be using web3js.

Ethereum’s Solidity 101: Part 2 — Development Tools, Gas, Transactions and Smart Contracts.

--

--