以太坊区块链Java(EthereumJ)学习笔记:P2P Network

本文详细介绍了EthereumJ的DevP2P网络协议,包括网络层、DEVP2P协议层和Ethereum协议层的职责。EthereumJ使用UDP进行节点发现,TCP进行区块消息交换,利用Netty NIO处理底层协议。此外,还阐述了NodeManager、EthereumChannelInitializer、PeerClient、PeerServer、ChannelManager等关键组件在节点发现和消息处理中的作用。
摘要由CSDN通过智能技术生成

本文对EthereumJ的DevP2P相关的代码做一个简单的介绍。

DevP2P

以太坊定义了自己的DevP2P协议(https://github.com/ethereum/devp2p)实现以太坊网络内各节点之间的block同步。

 

以太坊的网络协议大致可以分为三个层次:

l  网络层(https://github.com/ethereum/devp2p/blob/master/rlpx.md),定义了如何在网络里发现相邻的node,如何进行node之间的安全握手,如何把上层协议消息放入传输Frame里去,以及如何进行消息的流控。

l  DEVP2P协议层(https://github.com/ethereum/wiki/wiki/%C3%90%CE%9EVp2p-Wire-Protocol),定义了建立以太坊node之间的P2P链接所需要的消息和消息交互的流程。

l  Ethereum协议层(https://github.com/ethereum/wiki/wiki/Ethereum-Wire-Protocol),定义了如何在以太坊node之间获得blockHeaders,Blocks,Transactions等信息的消息和消息交互的流程。

 

EthereumJ Net

EthereumJ使用UDP协议来进行以太坊网络node的发现,使用TCP协议来进行以太坊网络node之间的block消息交互。

 

EthereumJ使用netty的NIO类库来处理底层的TCP协议和UDP协议,自己实现了以太坊DEVP2P定义的协议。

 

EthereumJ进行以太坊node discovery的模块主要包括以下Class。

l  UDPListener

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值