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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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
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). ...
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 ...
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 ...
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 ...
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
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 ...
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 | |
| ...
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 ...
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 ...
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]....
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 ...
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 ...
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 ...
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 ...
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/...
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 ...
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 ...
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 ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
devp2p × 46go-ethereum × 12
rlpx × 11
network × 10
node-discovery × 7
peers × 6
discovery-protocol × 5
nodes × 4
protocol × 4
p2p × 4
bootnodes × 3
transactions × 2
blockchain × 2
private-blockchain × 2
consensus × 2
encryption × 2
whisper × 2
rlp × 2
libp2p × 2
web3js × 1
contract-deployment × 1
ethereum-wallet-dapp × 1
dapp-development × 1
security × 1
evm × 1