一种基于区块链的数据存入和搜索系统及其方法与流程

文档序号:16533303发布日期:2019-01-05 10:57阅读:427来源:国知局
一种基于区块链的数据存入和搜索系统及其方法与流程

本发明关于区块链的技术领域,具体涉及一种基于区块链的数据存入和搜索系统及其方法。



背景技术:

去中心化的区块链搜索通过遍历所有区块来搜索需要的信息,工作量大;基于硬盘查询,搜索效率更低。

公开号为100416559c(惠普公司,申请号:200410030467.7,优选权日为2003/03/14)中国发明专利申请的使用全局唯一标识符的数据搜索系统和数据搜索方式摘要所述:通过使用如下搜索系统更易于搜索与给定目标相关联的数据和/或服务,该系统具有全球唯一目标标识符、元数据存储器、用于输入全球唯一标识符的输入、用于从元数据存储器中读取包含该输入全球唯一标识符之元数据集合的元数据读取器以及元数据搜索引擎,用于通过搜索包含在已读取的元数据集合的每个元数据当中的特定描述语句来搜索特定元数据。

公开号为1162154a(松下电器产业株式会社,申请号为97102618.1,申请日:1997/02/12)的中国发明专利申请的数据搜索装置摘要所述:揭示了一种数据搜索装置,该装置包括:请求接收部分,接收搜索请求和登记请求;记录号提供部分,把记录号数据提供给每个记录;相对编号部分,把记录号数据分组及转换成组号数据和相对记录号数据;索引文件产生部分,产生索引文件;索引文件存储部分,存储索引文件;索引文件搜索部分,搜索由搜索数据指出的记录;绝对编号部分,把被搜索记录的先对号数据和组号数据转换成记录号数据;以及搜索结果输出部分,依据记录号数据输出搜索结果。

公开号为1053050c(申请号为93121698.2,io研究有限公司)的中国发明专利申请的分布式数据库系统及其数据库接收机摘要所述:分布式数据库系统,包括:中心站及接收站。中心站包括:数据存储器,用于存储构成数据库的数据;处理器,用于从数据存储器提取数据以产生顺序的数据流来进行分配;传送装置,用于编码和传送数据流;各接收站包括:译码装置,接收和译码长松的数据以由此重新构成数据库数据;键盘,用于将用户命令输入接收站;接收机处理装置,根据与用户命令相关的数据构成数据库;存储器,存储构成数据库的数据;通信装置,响应用户命令传送被选择数据。

以上三个专利都是基于中心化的数据库实现,中心化的数据库通过建索引,分库分表,分布式存储,内存数据库等办法提高搜索效率,但安全性一直被人诟病。



技术实现要素:

本发明提供了一种基于区块链的数据存入和搜索系统及其方法,通过中心化的数据库技术和去中心化的区块链技术结合,以区块链数据为锚点,在保证一致性,安全性等区块链固有优势的基础上,提升了区块链运行的效率。

一种基于区块链的数据存入和搜索系统,包括:

应用程序编程接口模块,该模块用于响应用应用层对区块链公链智能合约的调用;管理、筛选应用层发送的信息,在区块链上实现增加和查询的功能;并对接入区块链的账户异常操作返回非法信息;

用户、角色、权限管理模块,该模块用于对接入区块链的用户、角色和权限按照算法进行用户、角色的验证,并对每个用户的权限进行有效性验证;同时提供异步消息推送服务,将用户对账户信息的相关操作推送到应用程序编程接口模块中,实时更新账户信息;

数据库模块,该模块用于定时增量更新数据库和区块链的内容;并通过分库、分表、索引技术提高数据库的工作;

内存数据库模块,该模块将数据库数据放在内存中直接调用智能合约;该模块用于定时增量更新数据库和区块链的内容。

本发明中,内存数据库模块,为了应对高吞吐量和大并发的现状,内存数据库模块将数据库数据放在内存中直接调用智能合约以提高效率,数据库模块通过分库、分表、索引等技术提高数据库的工作,本发明通过中心化的数据库技术和去中心化的区块链技术结合,以区块链数据为锚点,在保证一致性,安全性等区块链固有优势的基础上,提升了区块链运行的效率。

一种采用基于区块链的数据存入和搜索系统的数据存入方法,该数据存入方法包括以下步骤:

1)用户通过去中心化应用(decentralizedapplication,dapp,也叫分布式应用)入口,将信息输入到应用程序编程接口模块,应用程序编程接口模块将信息输入到用户、角色、权限管理模块进行验证,用户、角色、权限管理模块将信息和内存数据库模块进行交互,完成权限分配,然后调用获取gas的方法,获得gas;

2)用户携带gas发起请求,准备将时间戳、公钥、上链内容存入区块链;

3)从内存数据库读取该用户权限版本,如权限版本不一致,则返回到步骤1)重新获取gas,如权限版本一致,则采用内存数据库模块调用智能合约,若智能合约相应请求,执行一笔交易,把交易信息和备注内容写入新块,上传到区块链和数据库模块,结束合约,如智能合约交易失败,gas烧完智能合约自动停止。

一种采用基于区块链的数据存入和搜索系统的数据搜索方法,该搜索方法包括以下步骤:

1)用户通过去中心化应用(decentralizedapplication,dapp,也叫分布式应用)入口,将信息输入到应用程序编程接口模块,应用程序编程接口模块将信息输入到用户、角色、权限管理模块进行验证,用户、角色、权限管理模块将信息和内存数据库模块进行交互,完成权限分配;

2)用户输入搜索关键词结合算法和内存数据库模块交互;

3)若搜索成功,则内存数据库模块将搜索结果返回给去中心化应用,若未搜索成功,则返回步骤2),未搜索成功次数达到5~15次,则停止搜索,并将未成功检索的信息反馈给去中心化应用;

4)把这次搜索事件存放到区块链节点集群和数据块库模块中。

步骤3)中,未搜索成功次数达到8~12次,最优选为10次。

与现有技术相比,本发明具有如下优点:

本发明的基于区块链的数据存入和搜索系统和方法作为一种底层技术可广泛应用于中心化系统的迭代和去中心化系统的优化,通过中心化的数据库技术和去中心化的区块链技术相结合,提升区块链数据存入和搜索的效率。

附图说明

图1为本发明的基于区块链的数据存入和搜索系统的示意图;

图2为本发明基于区块链的数据存入和搜索系统的部署过程示意图;

图3为本发明采用基于区块链的数据存入和搜索系统的数据存入方法的示意图;

图4为本发明采用采用基于区块链的数据存入和搜索系统的数据搜索方法的示意图。

具体实施方式

如图1所示,为一种基于区块链的数据存入和搜索系统,包括:

应用层api(applicationprogramminginterface,应用程序编程接口)模块,该模块用于响应应用层对区块链公链智能合约的调用;管理、筛选应用层发送的信息,在区块链上实现了增加和查询的功能;并对接入区块链的账户异常操作返回非法信息。

用户、角色、权限管理模块,该模块用于对接入区块链的用户、角色和权限按照指定的算法进行用户、角色的验证,并对每个用户的权限进行有效性验证;同时提供异步消息推送服务,将使用者对账户信息的相关操作推送到应用层api模块中,实时更新账户信息。

数据库模块,该模块用于定时同步更新数据库和区块链的内容;该模块用于定时增量更新数据库和区块链的内容;并通过分库、分表、索引等技术提高数据库的工作。

内存数据库模块,为了应对高吞吐量和大并发的现状,该模块将数据库数据放在内存中直接操作以提高效率;该模块用于定时增量更新数据库和区块链的内容。

如图2所示,为基于区块链的数据存入和搜索系统的部署过程,包括:

1)打开dapp(decentralizedapplication,去中心化应用,也叫分布式应用),配置文件定义ip地址和端口号;

2)验证认证码是否存在,如存在,则配置文件进入dapp用户界面;

3)如认证码不存在,则获取dapp端口号、部署路径、系统名称,发起注册请求,验证是否注册;

4)写入dapp列表,生成认证码,写入到配置文件,进入dapp用户界面。

如图1和图3所示,为本发明的一种基于区块链的数据存入方法,该存入的方法包括以下步骤:

1)从请求头获取gas:

用户通过dapp(decentralizedapplication,去中心化应用,也叫分布式应用)入口,向应用层api模块输入信息,应用程序编程接口模块将信息输入到用户、角色、权限管理模块进行验证,用户、角色、权限管理模块将信息和内存数据库模块进行交互,完成权限分配,调用获取gas的方法,获得gas。

gas是程序执行的燃料,在以太坊区块链上实现了一个evm(以太坊虚拟机)的代码运行环境,在链上执行写入操作时,网络中的每个全节点都会进行相同的计算并存储相同的值,这种执行的消耗是昂贵的,为了促使大家将能在链下进行的运算都不放到链上进行,也为了奖励矿工,因此在链上每执行一个写入操作时,都需要支付一定的费用,用gas为单位来计数,每个在链上可以执行的命令都设置了一个消耗的gas值,

2)用户携带gas发起请求,准备将时间戳、公钥、上链内容存入区块链;

3)从内存数据库读取该用户权限版本,如权限版本不一致,则返回到从请求头获取gas,如权限版本一致,则调用智能合约,上链段块,若智能合约相应请求,执行一笔交易,上链段块成功,把交易信息和备注内容写入新块,则结束合约,如上链段块失败,交易失败,gas烧完智能合约自动停止。

如图1和图4所示,为一种基于区块链的数据搜索方法,该搜索的方法包括以下步骤:

1)用户通过dapp入口,经过应用层api模块输入信息,其信息和内存数据库模块进行交互,得到用户、角色、权限管理模块验证和分配权限。

2)用户输入搜索关键词和内存数据库模块交互,具体通过现有的人工ai引擎以及结合算法,与内存数据库模块交互。

3)内存数据库模块返回搜索结果,若搜索成功,则将搜索结果返回给dapp,若未搜索成功,则继续讲关键词结合算法与内存数据库模块交互。

4)采用基于区块链的数据存入方法把这次搜索事件记录上链,即存放到区块链节点集群。

本发明通过中心化的数据库技术和去中心化的区块链技术相结合,提升区块链数据存入和搜索的效率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1