Go Ethereum P2P : 实现[1]

本文介绍了Go Ethereum项目中P2P组件的重要性和功能,包括节点发现、连接管理和数据通信。详细分析了P2P目录结构,如dial.go、discover、enode和rlpx.go等,强调其对以太坊网络稳定性、可靠性和性能的影响。P2P服务器在Node启动时创建,是所有通信的基础。
摘要由CSDN通过智能技术生成

简介

P2P 部分的代码实现。
P2P 在 Go-ethererum 项目中是非常重要的一个组件。 所有的重要的服务都构建在其上(eth/whisper/swarm)。P2P 主要负责本地节点与其它节点的所有通信功能, 包括:

  1. 发现其它的Ethereum 节点。
  2. 管理/接收其它节点发起的连接。
  3. 主动向其它的ethereum 节点发起连接。
  4. 接收上层协议的请求或者转发接收数据给上层协议

只有在通信信道通畅以后, 构筑在其上的以太坊核心算法/协议才能正常的工作。所以说虽然这部分代码功能本身和区块链相关的逻辑与算法并不是紧耦合,但是它的稳定性/可靠性/性能 却关乎到整个节点的表现。

更上层的服务例如eth 的核心逻辑都会涉及到P2P模块, 所以我们在正式开始eth模块分析之前, 先需要完成P2P 模块分析。

代码目录结构

src_root/p2p/的目录结构
├── dial.go 主要负责主动发现节点,连接节点,查找节点地址信息 。
├── discover 目前正在使用的老版本的Kademlia 协议实现
│ ├── node.go 网络中的主机节点数据结构
│ ├── ntp.go 网络时间服务的包装,主要用于时钟同步
│ ├── table.go 核心的节点路由表实现。Kademlia 的核心设计
│ ├── udp.go Kadmelia的UDP协议实现
├── discv5 新的测试版本的Kademlia协议实现(

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值