以太坊的RPC简介(四)

2 篇文章 0 订阅
2 篇文章 0 订阅

之前的章节在介绍服务端和客户端的时候提到消息(请求)的处理逻辑在 handler.go 文件中,本文就分析一下该文件的内容。


处理消息又分为处理批量消息和处理单个消息,因为处理单个消息是处理批量消息的特例,本文只介绍处理批量消息,即从 handleBatch() 方法开始。

处理流程

具体的处理流程先㕷一个流程图吧。

在这里插入图片描述

调用时机

该流程的调用时机是服务端处理 HTTP 请求 (用 serveSingleRequest 来处理) 和 dispatch 流程 (调用时机前文有介绍,初始化 RPC 客户端,且非 HTTP 请求的时候) 读取信息的时候。


RPC 客户端初始化又包括两个方面,一是真正创建 RPC 客户端的时候,二是服务端处理非 HTTP 请求 (用 ServeCodec 来处理) 。

输入

该流程的输入是一条(或多条)消息(或请求)。

简单解释

这个图从宏观上可以分为左、中、右三列,其中,左、中两列为服务端的处理流程,右列为客户端的处理流程。而右列的上半部分是处理客户端普通消息的流程,而下半部分是处理客户端订阅消息的流程。


再说左、中两列,左列为服务端要推送订阅消息的流程,中列则是服务端去调用以太坊预先定义的 API 接口的流程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值