主页 > 怎么在华为下imtoken > 以太坊源码分析---go-ethereum的p2p通信分析(一)

以太坊源码分析---go-ethereum的p2p通信分析(一)

怎么在华为下imtoken 2023-05-20 07:57:09

本文csdn博客链接为:git

本文QQ空间链接为:

先介绍一篇文章,里面还介绍了以太坊p2p通信,github

这篇文章写得非常好。 对以太坊源码的分析也很到位,代码框架表达的很清楚。 春天

那为什么我还要写这个源码分析呢? 在分析源码的同时以太坊网络通讯,我也看了这篇文章,不过这篇文章主要关注代码框架,代码的细节还是需要补充的。 这就是我做blog.frame的初衷

然后身体开始功能

以太坊网络拥堵可以几日到账_以太坊网络拥堵_以太坊网络通讯

完整的代码目录表明该版本源码为go-ethereum-release-1.0.0版本。 至于为什么用这个版本,版本越低,源码复杂度越简单,但原理应该相差不大。 这是考虑的初衷。源码分析

然后我们进入源码spa

以太坊网络拥堵_以太坊网络通讯_以太坊网络拥堵可以几日到账

1.初始化

从条目开始:.net

以太坊网络拥堵可以几日到账_以太坊网络拥堵_以太坊网络通讯

github.com/ethereum/go-ethereum/eth/backend.go 3d

以太坊网络拥堵可以几日到账_以太坊网络拥堵_以太坊网络通讯

这里有两个非常重要的成员。 博客

ProtocolManager是p2p通信的管理模块

P2p.Server是p2p的传输模块

以太坊网络通讯_以太坊网络拥堵_以太坊网络拥堵可以几日到账

让我们看看 New 函数,因为

github.com/ethereum/go-ethereum/eth/backend.go

以太坊网络拥堵可以几日到账_以太坊网络拥堵_以太坊网络通讯

这个函数是构造入口以太坊网络通讯,这里简单看看为什么是入口

github.com/ethereum/go-ethereum/cmd/geth/main.go

以太坊网络拥堵可以几日到账_以太坊网络拥堵_以太坊网络通讯

Console在哪里,我们看一下init函数

以太坊网络拥堵可以几日到账_以太坊网络拥堵_以太坊网络通讯

以太坊网络通讯_以太坊网络拥堵可以几日到账_以太坊网络拥堵

以太坊网络拥堵可以几日到账_以太坊网络拥堵_以太坊网络通讯

看看开始

github.com/ethereum/go-ethereum/cmd/geth/main.go

以太坊网络拥堵可以几日到账_以太坊网络拥堵_以太坊网络通讯

在 github.com/ethereum/go-ethereum/cmd/utils/cmd.go

以太坊网络拥堵可以几日到账_以太坊网络拥堵_以太坊网络通讯

上面 main.go 中的条目是从 new 开始的。

言归正传,回归

以太坊网络拥堵_以太坊网络通讯_以太坊网络拥堵可以几日到账

github.com/ethereum/go-ethereum/eth/backend.go

在新功能中

funcNew(config*Config) (*Ethereum, error) {

初始化以太坊结构

以太坊网络拥堵可以几日到账_以太坊网络拥堵_以太坊网络通讯

下面是ProtocolManager的初始化

以太坊网络拥堵可以几日到账_以太坊网络拥堵_以太坊网络通讯

下面是p2p.Server的初始化。

以太坊网络拥堵_以太坊网络拥堵可以几日到账_以太坊网络通讯

最重要的是协议的传输。 这里上层的protocolManager与下层的p2p链接。

以太坊网络拥堵可以几日到账_以太坊网络拥堵_以太坊网络通讯

然后启动函数

以太坊网络拥堵可以几日到账_以太坊网络拥堵_以太坊网络通讯

龚浩华初稿

祭司新月

QQ 29185807

2018 年 3 月 1 日

以太坊网络拥堵可以几日到账_以太坊网络拥堵_以太坊网络通讯