以太坊细节(1):消息机制

本文深入探讨以太坊中的消息处理,包括ProtocolManager、serverHandler和clientHandler中的msg监听与转发逻辑。重点分析了GetBlockHeadersMsg在共识过程中的作用,以及交易和区块哈希的广播机制。同时,文章提到了带宽消耗,但并未在以太坊白皮书中找到相关描述,而是在其他资源中找到Geth节点的带宽要求:上行4kb/s,下行60kb/s。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

研究公链中msg互相触发关系,学习一下以太坊中消息广播的逻辑顺序。
带宽要求和消息转发之间有没有相对关系。

消息监听机制 handleMsg: server,client,ProtocolManager
消息广播机制 broadcast: transaction,block,blockHash

寻找转发点

找msg的监听循环,代码中类似handleMsg之类的函数

ProtocolManager.handeMsg 中的转发逻辑

在ProtocolManager.handleMsg中把所有消息的触发关系梳理了一遍。
内容如下
在这里插入图片描述

举例 GetBlockHeadersMsg

在共识过程中,如果节点收到了区块头的消息。
会触发消息监听中的GetBlockHeadersMsg事件。
代码如下
handler.go line386

case msg.Code == GetBlockHeadersMsg:
        ...
        if err := msg.Decode(&query); err != nil {
			return errResp(ErrDecode, "%v: %v", msg, err)
		}
        ...
return p.SendBlockHeaders(headers)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

可爱多多白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值