在说以太坊的RPC前,先来解释RPC是什么。
RPC简介
RPC全称是Remote Procedure Call,即远程过程调用。它可用于相同编程语言之间调用,也可用于不同编程语言间的调用。本文以golang语言来实现服务端和客户端的RPC实现。
RPC的GoLang版Demo
RPC
服务端的作用是提供服务,让客户端可以调用服务端的方法。为了实现简单,本文准备是Demo是接收客户端的一个字符串,然后和服务端的一个字符串拼接后返回到客户端。
第一步,声明一个服务的对象,该对象下可以包含多个供客户端调用的方法,这些方法通常会传入两个参数,第一个参数用来传递客户端发过来的请求数据,第二个参数用来返回服务端发给客户端的响应数据,而方法的返回值则是一个 error
。
第二步,把上述声明的服务对象注册到rpc服务中,然后启动一个 TCP
监听,然后把 RPC
服务放到 TCP
上为客户端提供服务。
RPC
服务可以放到很多种类的连接上,比如以太坊,就提供了 InProc、IPC、HTTP、WS
四种方式。其中,InProc
是进程内部调用,即 localConsole
,IPC
是进程间通信,即 remoteConsole
,传入的参数可能是.ipc文件的路径,也可能是http地址,