Client Diversity thread.

Having multiple clients is a feature of the Ethereum blockchain

It will become even more so after the merge!

But why bother developing several clients instead of just one?

Let's see.

Web3 threads. Client diversity
Table of Contents:

Introduction
Client types
Execution Clients
Execution clients stats
Consensus Clients
Consensus Clients stats
Why multiple Clients?
Why is client diversity important?
Bugs
Resilience to attacks
Proof-of-stake finality
Shared responsibility

Introduction

An Ethereum node runs on a client, but there is not a single type of client, there are many.

The clients are built using common specifications to ensure:
- same UX
- same functionality
- communication with other nodes

Now the distribution is not diverse enough.
Client Types

There are currently 2 types of clients:
- Execution Clients
- Consensus Clients
- Why Multiple Clients?
Diversity is important for both of them
Execution Clients

They:
- process and broadcast transactions
- manage Ethereum's state
- run transactions computation in the EVM.
- handle proof-of-work consensus.

After the merge, the consensus will be handled by the consensus clients.
Execution clients stats

For the execution layer. here is the situation.

Geth: ~82%
Openethereum: ~8%
Erigon ~7%
Nethermind: ~2%
Other clients: ~1%

Not well balanced. Image
Consensus Clients

They allow the network to reach an agreement about the head of the Beacon Chain, using proof-of-stake.

They don't participate in validating or broadcasting transactions or executing state transitions (done by execution clients).
Consensus Clients stats

For Consensus Clients, the situation is better:

Prysm: ~67%
Lighthouse: ~19%
Teku: ~9%
Nimbus: ~5%
Grandine: ~1%
Other clients: <1 %

Here is a site you can check:
clientdiversity.org Image
Why Multiple Clients?

- Multiple clients are an Ethereum strength: many blockchains rely on a single one.

- Client diversity makes the network more resilient to attacks and bugs.

- Having multiple clients is not enough: they must be adopted equally by the community.
Why is client diversity important?

Having independently developed (and maintained) clients is important for a decentralized network!

Reasons:
- Bugs
- Resilience to attacks
- Proof-of-stake finality
- Shared responsibility
- Shared responsibility
Bugs

A bug in a single client is a minor risk for the network if it represents a minority of nodes.

With an even distribution of nodes, the likelihood of most clients suffering from a shared issue is small, and the network is more robust.
Resilience to attacks

Low diversity increases the risk associated with a hack on the dominant client.

An attack for a specific client is unlikely to be successful for other clients.

Client diversity has already proven to be a great defense against network attacks.
Proof-of-stake finality

Ethereum has had 100% uptime for now.

⚠After The Merge, the risks caused by poor client diversity become more alarming!

A critical bug in a consensus client with 33%+ nodes could prevent the Beacon Chain from finalizing, and Ethereum would be offline!
Shared responsibility

Having major clients put excess strain on a small dev team.

The lesser the diversity, the greater the burden of responsibility for the devs maintaining the main client.

Spreading the responsibility is good for:
✅ health of nodes
✅ health of people
If you liked this thread, follow @FrancescoCiull4 and RT the Tweet below. thnak you

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Francesco Ciulla

Francesco Ciulla Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @FrancescoCiull4

Feb 17
🛣️Web3 Roadmaps thread.

When you want to go somewhere, it is important to have a map or a navigator.

"What is the path to learning Web3?" is one of the most common questions I get every day.

A thread of valid Web3 Roadmaps.

My final thoughts at the end.

Resources - Web3 Roadmaps
Complete Web3.0 And Solidity Development Roadmap 2022 by @VittoStack

First Google Result. I am proud of you Vitto 🚀

vitto.cc/web3-and-solid…
Your Roadmap To Becoming A Web 3.0 Developer @oliverjumpertz

A roadmap from a true expert.

blog.oliverjumpertz.dev/your-roadmap-t…
Read 11 tweets
Feb 16
WalletConnect thread.

Today I have checked WalletConnect site and docs.

It's a protocol to communicate between Wallets (e.g. Metamask) and Apps (like OpenSea)

The current version is 1.0. There's a 2.0beta version.

A very interesting tool from a developer's point of view.

Image
Table of Contents

- What is WalletConnect?
- The connection
- Integration
- Technical Specification
- How to get started
- Upcoming v2 Top Features
- Conclusion

What is WalletConnect?

It's a protocol for Wallets-Dapps communication.

It creates a connection between two apps or devices using a Bridge server to relay encrypted payloads.
Read 10 tweets
Feb 10
Ethereum Active projects on GitHub.

❌Many Ethereum projects on Github are outdated, archived, or deprecated.

✅A list of big active projects:
- go-ethereum
- web3.js
- ethereum-boilerplate
- ethereum-org-website
- ethereum/EIPs
- ethereumjs-monorepo
- ethers-io/ethers.js

github resources - ethereum active project on github
Go Ethereum

Official Golang implementation of the Ethereum protocol.

A very interesting one, of course especially for Go developers but not only for them.

@golang
github.com/ethereum/go-et…
Web3.js - Ethereum JavaScript API

Very important for frontend developers.

It's a JavaScript API that connects to the Generic JSON-RPC spec.

You need to run a local or remote Ethereum node to use this library.
#web3js
github.com/ChainSafe/web3…
Read 9 tweets
Feb 9
⬜Smart Contracts Open Source projects on GitHub:

- ConsenSys/smart-contract-best-practices (5k★)
- HashLips/solidity_smart_contracts (300★)
- openzeppelin-contracts (16k★)
- EthWorks/Waffle (700★)
- ethereum/solidity (15k★)
- Uniswap/v3-core (2k★)
- truffle (12k★)

GitHub Resources - Smart Contracts
Smart Contract Security Best Practices @ConsenSys

Interesting repository about smart contracts' best practices.

Very active and almost 1k forks

(Documentation also available in Vietnamese and Chinese)

github.com/ConsenSys/smar…
👄 Solidity Smart Contracts @de_botha

A list of smart contracts coded in solidity.

This repository is used for his YouTube Channel.

Repository 100% in solidity.

github.com/HashLips/solid…
Read 9 tweets
Feb 8
🧑‍🤝‍🧑Dao VS 🕴️Traditional Organization thread.

DAO: Decentralized autonomous organization.

Both DAOs and traditional organizations need an initial founder or group of founders.

But the way they are conceived and they work is totally different.

Let's see the differences.

web3 threads. DAO vs classi...
Table of Contents

- Foundation
- Hierarchy structure
- Contracts
- Voting for changing
- Changes
- Vote handling
- Service offer
- Activity Transparency
- Examples

Foundation

🧑‍🤝‍🧑DAO:
technically no paperwork is needed. Decisions are put into the blockchain and done with smart contracts.

🕴️Traditional:
Way more complicated! You need to submit a lot of papers, submit a lot of info. You need certificates, licenses, bank account (of course!).
Read 11 tweets
Feb 3
🎯Centralization VS 🌐Decentralization thread.

Do you remember NAPSTER?

If YES, sorry you are old my friend.

It was a centralized system for distributing pirated music.
Turned off the server, it stopped working.

Let's see PRO/CONS of centralized VS decentralized systems

Table of Contents:

Network
Performance
Conflicting Data
Points of Failure
Coordination
Censorship
Participation

Network

🎯Centralized
- All participants are connected to the central authority.
- Info propagates quickly.
- The central authority handles propagation.

🌐Decentralized
- Participants may be many edges away from each other.
- Information broadcasts may take a long time
Read 10 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

:(