Projects
Components

Network Components

A Blockchain network comprises of nodes. Each participant in a network must setup their own node and connect it to the other nodes in the network. Two components are required to run an Ethereum node:

Execution Client

An execution client handles transactions, deployment and execution of Smart Contracts and contains an embedded virtual processing environment known as the Ethereum Virtual Machine.

Consensus Client

Historically, an execution client alone was enough to run a full Ethereum node. However, since Ethereum swapped from proof-of-work (PoW) to proof-of-stake (PoS) based consensus, Geth needs to be coupled to another piece of software called a consensus client.

The consensus client (also known as the Beacon Node) implements the proof-of-stake consensus algorithm, which enables the network to achieve agreement based on validated data from the execution client. There is also a third piece of software, known as a Validator that can be added to the consensus client, allowing a node to participate in securing the network. Validators are responsible for validating transactions and adding them to the blockchain. Validators are chosen in a decentralized manner, promoting security and decentralization.

There are five consensus clients available, all of which connect to Geth in the same way:

  • Lighthouse: written in Rust
  • Nimbus: written in Nim
  • Prysm: written in Go
  • Teku: written in Java
  • Lodestar: written in Typescript

blsync is a beacon chain light client. Integrated within Geth, blsync eliminates the necessity of running a separate consensus client, making it ideal for use-cases that do not require full validation capabilities. It comes with very low resource requirements and can sync the beacon chain within seconds. blsync can be run in two modes: integrated or standalone. In standalone mode it is possible to use it for driving other execution clients.

While all nodes can run the same consensus client, for better performance it is encouraged to have client diversity in a network, which means nodes must vary the cients used. We will be using a combination of Lighthouse and Prysm across nodes in our network.

Tech Stacks

The technologies that we will be using for each component for both options are listed below:

ComponentOption 1Option 2
Configure, Setup, and Deploy on a local computer.Use Sepolia, a public Testnet.
Node (Execution Client)geth (Go Ethereum)Built in
Node (Consensus Client)Lighthouse
Prysm
Built in
Smart ContractSolidity
Remix IDE
Solidity
Remix IDE
User AppCustom app using web3.js and a Web3 Provider (Metamask)Custom app using web3.js and a Web3 Provider (Metamask)