29 votes
Accepted

What are the peer discovery mechanisms involved in Ethereum?

The peer discovery algorithm is based on the kademlia protocol. More details: https://github.com/ethereum/devp2p A standalone implementation can be found here. Edit: A simplified model of how the p2p ...
Sebi's user avatar
  • 5,294
22 votes
Accepted

What is the distinction between libp2p, devp2p and RLPx?

LIBP2P is a protocol implementation toolset or library that allows you to build software for different P2P networks and scenarios. DEVP2P and RLPx are presented in the Ethereum documentation as ...
Sentinel's user avatar
  • 1,238
21 votes

What is the distinction between libp2p, devp2p and RLPx?

I can only answer for libp2p coming from the IPFS project (and not devp2p coming from Ethereum). libp2p is a modular P2P networking stack used to connect to other peers, finding and transferring ...
Victor Bjelkholm's user avatar
19 votes
Accepted

How many transactions per second can Ethereum currently handle? What changes will allow the network to be able to handle more?

I did the math to show the aprox tx/s: The block gas limit is 7,999,992 Transaction costs 21,000 gas (let's assume nothing else is attached) That's ~380 transactions per block With a block time of ...
CPereez19's user avatar
  • 2,835
13 votes
Accepted

At any given time, how many nodes is my node connected to? As the number of nodes in the network increases, will communication between them be faster?

You can see the connected peers by typing admin.peers in the Geth console. The maximum number of peers is set using the -maxpeers n flag in Geth. There is a discovery process based on Kademlia for ...
JackWinters's user avatar
  • 3,413
7 votes

What underlying protocols are used to send packets between nodes, and how are messages encrypted?

Ethereum uses DevP2P, which is a general protocol of discovery and connection of nodes, with an ethereum subprotocol defined on top of it (as opposed to the subprotocol of swarm, whisper, etc). You ...
Herman Junge's user avatar
  • 2,381
7 votes

What are the peer discovery mechanisms involved in Ethereum?

The accepted answer is not correct. The bootnodes are unreliable. A node can get blacklisted from the bootnodes and the bootnodes are sometimes unavailable without any apparent reason. The Ethereum ...
Sentinel's user avatar
  • 1,238
6 votes
Accepted

Ethereum network messaging

I wrote this on the gitter.im channel, so here it is again anyway. Caveat is I have not looked at recent geth code for this, so there may be subtle discrepancies with actuality. A key paragraph is ...
Sentinel's user avatar
  • 1,238
6 votes

How does Ethereum client select which peers to synchronise with?

Only a partial answer for the first couple of sub-questions... How many nodes do we connect to? The maximum number is set to 25 by default, but can be configured using the --maxpeers flag on the ...
Richard Horrocks's user avatar
5 votes
Accepted

ÐΞVp2p / DApps - why is it in "Ð" not "D"? Any special significance of using Ð?

Ð is a letter from Old English, pronounced "eth". So "Ðapp" could actually be pronounced "eth-app", though I imagine most people pronounce the Ð as a hard "d" (for dog). Ξ is the upper-case Greek ...
Richard Horrocks's user avatar
5 votes
Accepted

How to post to the blockchain without a third party API like infura

Infura is basically just running a bunch of nodes to which it provides access for you. So you just need to run your own node. There are a few different node clients available; the most popular are ...
Lauri Peltonen's user avatar
4 votes

Differences between RLPx v3 and v4

Version 4 of RLPx was implemented under EIP-8. The implementations (and code changes) of which can be found in the following places: Geth p2p code Web3 libp2p pydevp2p
Richard Horrocks's user avatar
4 votes

What happens to a transaction after you clicked 'send' in Ethereum network?[Transaction life cycle at the EVM and P2P networking level]?

You're missing the mining process. You should really explore it for a better understanding. Transactions will be sent to one of the nodes which will broadcast the transaction to the other(s). ...
Rob Hitchens's user avatar
  • 55.2k
3 votes
Accepted

LibP2P v DevP2P

devp2p is the older network wire protocol, for propagating blocks and other low-level functionality between Ethereum nodes. It was designed specifically for Ethereum from scratch, in isolation from ...
Paul Pham's user avatar
  • 638
3 votes

RLPx Handshake vs DevP2P Hello Message

In case you don't know the role of DEVp2p and RLPx : Though TCP provides a connection-oriented medium, ÐΞVp2p nodes communicate in terms of packets. RLPx provides facilities to send and receive ...
thinh's user avatar
  • 31
3 votes

devp2p protocol: support for data compression?

I had to dig around to find the hint that I was pretty sure existed :-) It's in the Design Rationale document, under Compression algorithm. The wire protocol and the database both use a custom ...
Richard Horrocks's user avatar
3 votes
Accepted

devp2p protocol: support for data compression?

Yes - this came with snappy compression via EIP 706 (https://github.com/ethereum/EIPs/pull/706) - implementation in go-ethereum via https://github.com/ethereum/go-ethereum/pull/15106
ligi's user avatar
  • 1,183
3 votes

What geth command options have been depreciated/removed?

You do everything right with init. As far as I understand you updated geth to last release, where hardware wallets support was added. So it requires libusb to be installed in your system. You should ...
Alexey Barsuk's user avatar
3 votes
Accepted

How do the protocols used in Ethereum (e.g. Whisper, P2P protocol suite) map onto the OSI model?

| OSI Layer | Ethereum Protocols | ------------------------------------- | Application | Kademlia, RPC, IPC | | Presentation | AES, ECDSA | | Session | | | ...
galahad's user avatar
  • 3,920
3 votes

How to post to the blockchain without a third party API like infura

If your goal is to eliminate single points of failure in your system, you need to study how peer to peer applications like geth achieve resilience. Replacing infura by a node that you own and control ...
Kivutar's user avatar
  • 86
3 votes
Accepted

Best Discovery Protocol implementation

You can use implementations of existing clients: Besu - Java implementation Geth - Go implementation Parity1 - Rust implementation 1 At this point, I would be careful to use Parity's implementation ...
import-antigravity's user avatar
2 votes
Accepted

Why does java Ethereum use UDP? - isn't devp2p TCP only

Q: is UDP officially used for node discovery and then TCP for communication? Yes. You can see the 30301 UDP discovery port in the enode URL format (from enode url format): enode://[email protected]....
BokkyPooBah's user avatar
  • 40.3k
2 votes

How does a program determine if the peer node is a bootnode or full node?

The RLPx protocol suite consists of at least two protocols: The Kademlia like discovery protocol, that involves UDP packets that are simply signed by the nodes and not encrypted The RLPx/devp2p ...
Briomkez's user avatar
  • 1,894
2 votes
Accepted

What's limiting my peer count?

Being connected to 35 peers is usually more than enough. What are you trying to achieve that makes you want to be connected to more nodes? I assume you are using a computer at home which usually is ...
SCBuergel's user avatar
  • 8,774
2 votes

How does it the geth ethereum platform to automatically connect to the nodes that are in the main network of Ethereum?

The Ethereum Foundation runs bootnodes and the clients have the enode URIs hardcoded into the clients. These nodes are used for initial discovery and are generally disconnected from once someone has ...
natewelch_'s user avatar
2 votes

How does reputation work in the Ethereum P2P network?

What are the exact rules applied by Geth, Parity, and/or other clients to determine a peer's reputation? The exact answer to this is the source code for each client. To answer this question I've ...
num1's user avatar
  • 198
2 votes
Accepted

geth inter-node communication (devp2p/rlpx) encryption

Does someone know if there is any documentation on encryption in the inter-node protocol? You might have already found these, but here are few sources I've used in the past: https://github.com/...
Richard Horrocks's user avatar
2 votes
Accepted

What is the network layer in which RLPx is used for peering in Ethereum

RLPx is a cryptographic peer-to-peer network and protocol suite which provides a general-purpose transport and interface for applications to communicate via a p2p network. Since it is a TCP-based ...
Masoud jt's user avatar
  • 751
1 vote
Accepted

What is the different between P2P server and Node?

The Server.go(p2p.Server) is responsible for synchronize data from others p2p node(running P2P networking layer). The Node.go is responsible for all thing of an Ethereum node, ie: sync data, RPC ...
Van C's user avatar
  • 56
1 vote

DEVp2p Wire Protocol tutorial on geth or Web3.js/Web3.py

I found all these articles from the same author very useful: Ethereum from scratch - Part 1: Ping Ethereum from scratch - Part 2: Pinging a Bootnode Ethereum from scratch - Part 3: Decoding Bootnode ...
DaveIdito's user avatar
  • 894

Only top scored, non community-wiki answers of a minimum length are eligible