json-rpc协议

BCOS中用户与区块链交互使用的是rpc框架,这里简单介绍:
协议:json-rpc是一种远程调用协议,客户端被定义为请求对象的来源及对响应对象的处理程序;服务器被定义为响应对象的来源及请求对象的处理程序;
1.客户端需要向服务器发送请求
请求对象包含:

jsonrpc:
指定JSON-RPC协议版本的字符串,必须准确写为“2.0”
method:
包含所要调用方法名称的字符串,以rpc开头的方法名,用英文句号连接的为预留给rpc内部的方法名及扩展名,且不能在其他地方使用。
params:
调用方法所需要的结构化参数值,该成员参数可以被省略。
id:
已建立客户端的唯一标识id,值必须包含一个字符串、数值或NULL空值。如果不包含该成员则被认定为是一个通知。该值一般不为NULL,若为数值则不应该包含小数

如果没有id,说明客户端不关心响应对象;
2.服务器向客户端回复响应,只要请求必须响应(请求中没有id除外)

jsonrpc:
指定JSON-RPC协议版本的字符串,必须准确写为“2.0”
result:
该成员在成功时必须包含。
当调用方法引起错误时必须不包含该成员。
服务端中的被调用方法决定了该成员的值。
error:
该成员在失败是必须包含。
当没有引起错误的时必须不包含该成员。
该成员参数值必须为5.1中定义的对象。
id:
该成员必须包含。
该成员值必须于请求对象中的id成员值一致。
若在检查请求对象id时错误(例如参数错误或无效请求),则该值必须为空值。

协议已经介绍完了,我们不在意传输细节,socket也好,http也好都无所谓,它只是一个约定俗成的传json的协议。

你可能感兴趣的:(BCOS学习)