In Ethereum, when we make transactions, which underlying protocol is used to send the packages over the network? And another question, are those messages are encrypted or not?
TCP, UDP, others? All?
Is there a reference you can show me that provides this information? I was unable to find it.
Best Answer
Ethereum uses
DevP2P
, which is a general protocol of discovery and connection of nodes, with anethereum
subprotocol
defined on top of it (as opposed to the subprotocol ofswarm
,whisper
, etc).You can read the following links to get a deeper view:
If you are more curious, these are the libraries you need to peek on
The connections are made with a TCP simple dial. After the connections are established, a handshake occurs and the messages are encrypted using the
nodekey
, a 512-bit key each node has. The latter can be defined by yourself, or auto-generated by your node if this one can't find it during start up.