Advertisement

[以太坊源码分析] 第六章 基于P2P的底层通信(第一部分)

阅读量:

Ethereum作为一个高度去中心化的系统,在其底层个体之间的通信显然至关重要;所有数据的一致同步与各个节点状态的更新均依赖于整个网络中每个节点之间的通信机制;该系统的网络通信主要基于peers-to-peers(P2P)通信协议,并根据自身传输的数据类型(如区块、交易记录和哈希值等)、以及各节点业务相关性的具体需求,在多个方面进行了细致的设计。

由于以太坊中p2p通信相关代码规模较大, 计划分成上下两篇文章进行详细阐述: 上篇将重点介绍ProtocolManager核心类内部的主要流程以及所涉及的通信协议体系设计; 下文将详细介绍ProtocolManager中的两个重要组件Fetcher与Downloader, 这里为上文内容

1. 一般意义上的p2p网络

在介绍以太坊的P2P通信机制之前,在了解一般意义上的P2P网络通信的一些特性时

peers-to-peers(p2p)本质上是一种网络拓扑结构,在其运行机制上与其最为显著的是基于客户端/服务器(C/S)架构相对比。在TCP/IP协议族的分层架构中,peers-to-peers网络的实际数据传输依然遵循在网络层面采用IP地址传输,在传输层面使用可靠传输协议TCP的特点;而peers-to-peers机制——如果将其视为一种协议的话,则应当被归类为位于应用层之上的层次结构设计方式,在功能定位上类似于一种逻辑拓扑架

全部评论 (0)

还没有任何评论哟~