以太坊系列之六: p2p模块--以太坊源码学习

简介: p2p模块p2p模块对外暴露了Server关键结构,帮助上层管理复杂的p2p网路,使其集中于Protocol的实现,只关注于数据的传输.Server使用discover模块,在指定的UDP端口管理网络中结点的发现以及维护,discover模块能够直接和临近结点交换各自已知结点信息,从而不断的更新结点网络.

p2p模块

p2p模块对外暴露了Server关键结构,帮助上层管理复杂的p2p网路,使其集中于Protocol的实现,只关注于数据的传输.

Server使用discover模块,在指定的UDP端口管理网络中结点的发现以及维护,discover模块能够直接和临近结点交换各自已知结点信息,从而不断的更新结点网络.

Server还是用nat模块来进行TCP端口映射,而nat主要是利用upnp和pmp两个协议,如果没有,那就只能认为指定的ip就是公网ip了.

Server要同时在udp和tcp的30303端口和p2p网络进行数据交换,前者是用来维护P2p网络,后者则是各种应用协议真正交换数据的地方.他们使用的格式是Msg,具体见 p2p_server.

关于Server以及Protocol如何使用可以见 Peer-to-Peer 虽然不是很详细,但是已经基本上说明了Server以及Protocol如何使用,感兴趣可以基于这个p2p网络实现自己的协议,可以完全与以太坊应用没关系.

目录
相关文章
|
7月前
|
存储 前端开发 区块链
DAPP系统开发技术原理丨DAPP现成源码规则解析
DAPP系统开发技术原理丨DAPP现成源码规则解析
|
JSON 资源调度 前端开发
手摸手用Truffle开发自己的第一个DApp
手摸手用Truffle开发自己的第一个DApp
112 0
手摸手用Truffle开发自己的第一个DApp
|
区块链
区块链开发(七)truffle使用入门汇总
区块链开发(七)truffle使用入门汇总
133 0
区块链开发(七)truffle使用入门汇总
|
开发框架 Dart 前端开发
|
监控 前端开发 API
Bytom Dapp 开发笔记(三):Dapp Demo前端源码分析
本章内容会针对比原官方提供的dapp-demo,分析里面的前端源码,分析清楚整个demo的流程,然后针对里面开发过程遇到的坑,添加一下个人的见解还有解决的方案。 储蓄分红合约简述 为了方便理解,这里简单说说储蓄分红合约的内容,具体可以查看储蓄分红合约详细说明,储蓄分红,顾名思义就是储蓄之后,当达到一定的时间,按照比例返回本息这样的意思,所以demo中拆分成saving(储蓄)与profit(提现)两个页面,本章内容是针对合约交易的提交,所以只针对储蓄页面说明。
1135 0
|
存储 算法 区块链
以太坊原理简介
本文介绍以太坊的一些基础概念,以及基本原理。主要内容包括:以太坊是什么、以太坊网络、账户类型、账户状态、交易、费用、gas、叔块、以太坊区块链结构、以太坊结构
3868 0
|
存储 Web App开发 JavaScript
以太坊开发入门
目标读者: 专业的程序员; 想深入了解以太坊/区块链及其生态的读者; 如果你已经有一定的以太坊技术基础,只想研究一些落地项目,可以直接跳到后面的项目模块。
2203 0
|
存储 JavaScript 前端开发
以太坊教程:搭建环境、编写编译一个智能合约
本以太坊教程主要是介绍:搭建一个开发环境、编写编译一个智能合约。 以太坊是什么 以太坊(Ethereum)是一个开源的有智能合约功能的公共区块链平台。通过其专用加密货币以太币(Ether)提供去中心化的虚拟机(“以太虚拟机” Ethereum Virtual Machine)来处理点对点合约。
2416 0
|
Linux Go 区块链
从零开始创建专属自己的以太坊
从零开始创建专属自己的以太坊 1.安装golang 2.安装ethereum 3.实使化并启动ethereum
10565 0