一种基于区块链统一接口(obcc)的许可链应用系统的制作方法-j9九游会真人

文档序号:11230701阅读:1854来源:国知局

本发明涉及一种区块链技术,特别是一种基于区块链统一接口(obcc)的许可链应用系统。



背景技术:

区块链(blockchain)是由节点参与的分布式数据库系统,也可以理解为分布式账簿(distributedledgertechnology),由多个节点共同维护的。它的特点是不易篡改、很难伪造、可追溯。区块链记录所有发生交易的信息,过程高效透明、数据高度安全。凡是需要公正、公平、诚实的地方,就可以应用区块链技术。

许可链属于区块链的一种,只有被许可的节点才能参与投票、记账、建块。许可链不需要挖矿,交易成本低,存储效率高。目前的许可链一般只针对于某一种具体应用,或某一类具体数据进行存储,针对不同的业务需要开发不同的许可链以匹配特定的数据存储要求。这导致新许可链的开发周期较长,且区块链底层相同的处理流程没有得到很好的复用。现有技术中存在多种方式进行建块的许可链,如参考文献m.pease,l.lamport,s.shostak.thebyzantinegeneralsproblem[j].acmtrans.programminglanguagesandsystems,1982,4(3):382~401中披露的。

区块链统一接口obcc(openblockchainconnector)是由北京航空航天大学、北京大学、清华大学联合推出的区块链接口标准,目前用户在应用过程中对于区块链的使用还存在很多不便,这其中包括区块链的申请,用户数据的入链存储,查询历史数据信息等。



技术实现要素:

本发明的目的在于提供一种基于区块链统一接口(obcc)的许可链应用系统,该系统会提供一个工具包,用户可以把它导入到自己的软件项目工程里,编程开发时像是调用本地函数或方法一样使用区块链的功能接口,当用户程序需要调用区块链的功能时,由obcc客户端代理将调用请求发到区块链的服务器端,由服务器的代理负责将请求广播到各个区块链节点进行处理,最终存入区块链或查询到信息并返回。该许可链应用方法基于一致性算法许可链的统一应用接口,提供简单易用的api,使用户应用能够使用区块链对数据进行存储与查询。

该基于统一接口obcc的许可链应用系统,可以通过简单的代码调用与配置迅速的完成新许可链的创建与使用,极大减少了许可链应用的开发周期。

本发明的一种基于区块链统一接口(obcc)的许可链应用系统,包括:

(1)用户ip配置模块,供用户根据obcc提供的jar包,配置区块链服务器端ip地址从而建立obcc连接;

(2)通讯模块,供用户调用jar包提供的功能后,obcc客户端与区块链服务器端之间所进行通信;

(3)调用请求模块,用于obcc客户端将调用请求发到区块链服务器端;

(4)服务调用模块,用于由服务器的代理负责将调用请求广播到各个区块链节点,并为各项功能分别提供相应的调用接口,所述调用接口调用各项obcc提供的功能。

优选的,通过所述通讯模块用户仅需获知区块链服务器端的ip地址,而无需获知区块链具体的节点服务器地址以及各种功能的具体实现方法。

优选的,所述各项obcc提供的功能包含许可链的创建、业务数据存储,业务数据创建、业务数据更新、业务数据删除以及区块链数据查询中的一项或多项。

优选的,所述服务调用模块的调用函数包括向区块链系统添加交易函数,从区块链系统查询交易函数,快速从区块链查询交易函数,创建交易链函数,创建帐户链函数以及创建索引函数。

优选的,所述服务调用模块的调用需要按照一定的顺序关系,先调用创建交易链函数和创建账户链函数,然后调用向区块链添加交易函数,最后调用从区块链系统查询交易函数以及快速从区块链查询交易函数。

优选的,所述服务调用模块由服务器的代理将调用请求广播到各个区块链节点后会将处理结果返回至用户应用。

优选的,所述基于区块链统一接口(obcc)的许可链应用系统提供一系列与接口参数相关使用规范,用户需要依循使用规范定义自己的应用数据。

优选的,所述业务数据存储使用共识机制进行。

优选的,所述许可链的建立采用拜占庭算法建块。

采用本发明的基于区块链统一接口(obcc)的许可链应用系统具有如下优点:一方面,缩短新的许可链的开发周期,用户无需耗费大量成本自己开发区块链处理流程模块,只需要使用obcc的api即可完成区块链的使用;另一方面,obcc提供的接口简单易用,上手快,学习成本较低,且obcc适用于各种业务场景,可扩展性高,只需要根据规范定义接口参数,就能实现不同场景的需求。最后,obcc底层的许可链核心系统,具有较高的运行速度,每秒处理大量数据,能够满足大密度数据存储的要求。

根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。

附图说明

后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。本发明的目标及特征考虑到如下结合附图的描述将更加明显,附图中:

图1是根据本发明实施例的obcc部署示意图;

图2是根据本发明实施例的obcc分层示意图;

图3是根据本发明实施例的obccapi函数调用顺序图。

具体实施方式

参见附图1为根据本发明实施例的obcc部署示意图,其中包括应用层的obcc客户端代理,多个obcc服务端代理以及多个区块链核心系统。图2表示根据本发明实施例的obcc分层示意图,其中包括obcc接口层,区块链core层以及存储层,obcc接口层具有创建接口,写入接口和查询接口,分别与相应的函数配合使用,区块链core层使用共识机制,具有同步管理,建块功能,包含信誉系统,通过签名/解签操作确保系统操作安全性,存储层包括leveldb数据库以及mysql数据库。

该实施例的基于区块链统一接口(obcc)的许可链应用系统,包括:

(1)用户ip配置模块,供用户根据obcc提供的jar包,配置区块链服务器端ip地址从而建立obcc连接,通过所述通讯模块用户仅需获知区块链服务器端的ip地址,而无需获知区块链具体的节点服务器地址以及各种功能的具体实现方法。

(2)通讯模块,供用户调用jar包提供的功能后,obcc客户端与区块链服务器端之间所进行通信;

(3)调用请求模块,用于obcc客户端将调用请求发到区块链服务器端;

(4)服务调用模块,用于由服务器的代理负责将调用请求广播到各个区块链节点,并将各项功能分别提供相应的调用接口,所述调用接口调用各项obcc提供的功能,所述各项obcc提供的功能包含许可链的创建、业务数据存储,业务数据创建、业务数据更新、业务数据删除以及区块链数据查询中的一项或多项,服务调用模块的调用函数包括向区块链系统添加交易函数,从区块链系统查询交易函数,快速从区块链查询交易函数,创建交易链函数,创建帐户链函数以及创建索引函数,服务调用模块的调用需要按照一定的顺序关系,先调用创建交易链函数和创建账户链函数,然后调用向区块链添加交易函数,最后调用从区块链系统查询交易函数以及快速从区块链查询交易函数,服务调用模块由服务器的代理将调用请求广播到各个区块链节点后还可以将处理结果返回至用户应用。

该基于区块链统一接口(obcc)的许可链应用系统提供一系列与接口参数相关使用规范,用户需要依循使用规范定义自己的应用数据。

根据本发明的优选实施方式,业务数据存储使用共识机制进行,而许可链的建立采用拜占庭算法建块。

api的调用顺序参见图3,已经采用阿拉伯数字以及箭头的方式进行表征。每个调用函数的原型,返回值以及函数的说明参见表1。

表1

本实施例中,obcc底层系统至少包含8个节点,其中,4个节点用于区块链核心系统的部署,基于拜占庭算法完成区块链存储的流程处理。每个区块链节点都有对应obcc服务器端代理。这4个区块链节点服务器互相之间的通信需要保持通畅,区块链节点和其对应的obcc服务器端代理节点的通信要保持通畅。

具体实现该实施例的系统时,用户新建一个应用工程,将obcc提供的jar包引入工程。使用obcc功能之前,要在配置文件中指定连接的obcc服务器端代理的ip。使用时,先创建一个obcc连接,并将连接开启。然后根据自己的业务场景,定义新建区块链的名称,以及存储哪些数据字段。将这些信息根据obcc使用规范定义接口参数,并调用obcc连接的创建新区块链的接口,完成区块链的创建与启动。区块链正常启动后,通过obcc连接发送消息存储请求,将数据存储到区块链上。同理,进行数据查询只需调用obcc连接提供的相应接口,并传入合乎规范的接口参数即可,该实施例的关于创建交易链接口和客户端对创建链接口调用的代码实现如下:

创建交易链接口java代码实现示例:

客户端创建链接口调用java代码示例:

本发明提供的基于区块链统一接口(obcc)的许可链应用系统,可以通过简单的代码调用与配置迅速的完成新许可链的创建与使用,极大减少了许可链应用的开发周期。

虽然本发明已经参考特定的说明性实施例进行了描述,但是不会受到这些实施例的限定而仅仅受到附加权利要求的限定。本领域技术人员应当理解可以在不偏离本发明的保护范围和精神的情况下对本发明的实施例能够进行改动和修改。

当前第1页1  
相关技术
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
网站地图