基于区块链的快速数据存储方法及系统与流程

文档序号:11217164阅读:6464来源:国知局
基于区块链的快速数据存储方法及系统与流程

本发明涉及区块链技术领域,尤其涉及数据的保存不需要直接通过交易的确认来实现正确写入的基于区块链的快速数据存储方法及系统。



背景技术:

区块链是一个去中心化去信任的集体维护的可靠数据库,分布式网络是区块链的基础设施,每个节点上产生的数据通过分布式网络广播到其他节点,其他节点通过工作量证明来验证数据的真实性。分布式网络是保证区块链去中心化、不可篡改、可追溯特性的前提,在比特币网络中,正是由于有分布于全球的验证节点,才使得比特币的工作量证明机制得到认可,也才让人们认识到了区块链的价值。通过上面的描述不难发现,区块链的一个重要特性是不可篡改性。由于各个区块通过历史相关性串联在一起形成一个单一链,使得数据一旦记录,就不能被篡改。对数据的直接修改都将导致之后的区块无效化。所以这个特性被广泛的应用在数据的防伪,标识等方面。

现有的区块链的基本操作是交易,区块链记录的也是关于用户的余额或者对余额的修改记录。由于区块链的分布式特性,区块链能记录的数据量很少。对区块链这个特性,记录额外数据应用的通常做法是将一些信息保存在交易的宏信息部分,这样当交易被执行并计入区块链后,所包含的宏信息也永久的记录在区块链中。

采用这种方式存在以下缺陷:1、执行需要交易来实现,一方面需要发送一定的交易数额,另一方面需要对交易进行签名,这样使得对数据的记录必须对应于某个用户账户或者钱包,并且需要访问相应的私钥信息。2、保存的宏信息分散在当个交易当中,对该信息的查询必须遍历每个交易。3、数据的保存必须通过交易的确认来实现正确写入。



技术实现要素:

为解决现有技术存在的问题,本发明提供一种基于区块链的快速数据存储方法及系统。

为实现上述目的,本发明采用的技术方案为:一种基于区块链的快速数据存储方法,包括:

步骤a、使用者通过客户端获得服务接口;

步骤b、使用者构建需要写入的数据条;

步骤c、使用者提供合适的访问控制,提交数据条到接入服务器;

步骤d、接入服务器发送请求至分布式验证服务器,

步骤e、验证服务器获得客户的存储请求,得到数据条;

步骤f、验证服务器通过共识系统,对数据条进行验证并对数据条集合进行共识,

步骤g、当区块周期到时,验证服务器将验证过的数据写入区块链。

一种基于区块链的快速数据存储系统,其特征在于:包括

客户端:供使用者写入数据条、数据查询及提供提交数据条或查询指令到接入服务器的服务接口;

接入服务器:接收来自于客户端的数据条或查询指令,并将数据条或查询指令发送请求至分布式验证服务器;

分布式验证服务器:通过共识系统,对数据条集合进行共识验证,当区块周期到时,验证服务器将验证过的数据条集合写入区块链;

区块链系统:支持数据存储,供验证服务器将验证过的数据写入相应的区块链中。

采用上述技术方案所带来的有益效果为:

1、本发明不需要通过单个交易来把数据计入区块链。而是在区块链的区块部分,单独定义出一块数据存储区,用来记录用户的数据写入请求。这样,我们就避免了现有的通过交易来间接存储的办法。使得数据的存储请求和交易的访问分开,用户存储时不需要了解交易的要素(发送数额,私钥签名,接受地址)。这样可以有利于用户端的权限访问控制。

2、数据存储的请求通过区块链提供的服务接口对用户开放。针对不同的应用场景,这个服务接口可以设置成私有的或者公有的。访问控制可以通过统一的数据存储访问权限控制,方式更加灵活。

3、数据的存储效率可以大大提高。相比寄生于交易的方式,直接数据存储的空间利用率得到数量级的提高。

4、对数据的查询也会由于存储的统一而获得加速,同时可以采用各种优化的办法进一步提升效率。

5、本存储技术可以独立于现有的基于交易的区块链系统,也可以架构于现有的区块链系统,获得额外的快速数据存储的功能,部署的方式灵活。

附图说明

图1是数据条格式框图。

图2是共识验证流程框图。

具体实施方式

下面结合具体实施方式对本发明优选的方案做进一步的阐述。

如图1和图2所示,一种基于区块链的快速数据存储方法,其特征在于:包括

步骤a、使用者通过客户端获得服务接口;进一步的改进,服务接口是公开的或者是受保护的。

步骤b、使用者构建需要写入的数据条;进一步的改进,数据条根据应用的需要,自己定义相关的协议,包括时间相关性,唯一性检查。数据条格式从左至右依次为:公钥、签名、时戳、序列表、上个区块号和负载。详细的方案为客户端采用数字加密算法产生一个私钥,如果用户已有该私钥,则不需要再生成;此时通过采用的加密算法进行处理,从账号私钥导出账号公钥;根据规定的数据条格式,生成数据条;如没有上一个区块号,则设置为0;将数据条中除签名外的部分合并并用私钥签名;将获得的签名写入数据条。

步骤c、使用者提供合适的访问控制,提交数据条到接入服务器;

步骤d、接入服务器发送请求至分布式验证服务器,

步骤e、验证服务器获得客户的存储请求,得到数据条;

步骤f、验证服务器通过共识系统,对数据条进行验证并对数据条集合进行共识;进一步的,验证服务器查询当前的活跃区块是否已有记录,如已有则忽略;验证服务器对数据条中的公钥和信息部分进行签名验证;验证节点对数据条中的历史区块进行验证,确认合法及包含正确的序列号;验证成功,则将数据条加入验证队列中,并发送验证结果至其他验证服务器;验证服务器通过预先设置的共识机制决定当前的共识数据条集合;当共识周期到时,所有符合要求的数据条集合从验证队列写入区块链系统中相应的区块链中;未符合要求的数据条进入下一次共识周期,直到共识完成或者超时。

步骤g、当区块周期到时,验证服务器将验证过的数据条集合写入区块链。

步骤h、数据查询,使用者通过客户端合适的访问权限,提交查询数据到接入服务器;接入服务器访问已验证的区块链,根据公钥找出记录并回溯得到所有的历史记录;接入服务器将数据结果返回给查询用户。

一种基于区块链的快速数据存储系统,包括

客户端:供使用者写入数据条、数据查询及提供提交数据条或查询指令到接入服务器的服务接口;

接入服务器:接收来自于客户端的数据条或查询指令,并将数据条或查询指令发送请求至分布式验证服务器;

分布式验证服务器:通过共识系统,对数据条进行共识验证,当区块周期到时,验证服务器将验证过的数据条集合写入区块链;进一步的,分布式验证服务器获得客户的存储请求,得到数据条;验证服务器查询当前的活跃区块是否已有记录,如已有则忽略;验证服务器对数据条中的公钥和信息部分进行签名验证;验证节点对数据条中的历史区块进行验证,确认合法及包含正确的序列号;验证成功,则将数据条加入验证队列中,并发送验证结果至其他验证服务器;验证服务器通过预先设置的共识机制决定当前的共识数据条集合;当共识周期到时,所有符合要求的数据条集合从验证队列写入区块链系统中相应的区块链中;未符合要求的数据条进入下一次共识周期,直到共识完成或者超时。

区块链系统:支持数据存储,供验证服务器将验证过的数据写入相应的区块链中。进一步的在区块链系统中的区块链的区块部分单独定义有一块数据存储区,用来记录用户的数据写入请求。

下面针对本技术方案的工作流程进行展开描述:

数据存储流程:

数据库使用者通过客户端获得服务的接口。这个接口可以是公开的或者是受保护的。使用者构建需要写入的数据条,这个数据条可以根据应用的需要,自己定义相关的协议,包括时间相关性,唯一性检查等。使用者提供合适的访问控制,向接入服务器获得提出存储请求。接入服务器转发给后台处理和验证服务器验证服务器通过共识系统,对数据进行共识验证。当区块周期到时,验证服务器将验证过的数据写入区块链。

系统工作流程:

客户端创建数据条;客户端通过系统采用的数字加密算法产生一个私钥,如果用户已有该私钥,则不需要再生成;通过采用的加密算法进行处理,从账号私钥导出账号公钥;根据图1的格式,生成数据条;如没有上一个区块号,则设置为0;将数据条中除签名外的部分合并并用私钥签名;将获得的签名写入数据条。提交数据到接入服务器客户通过合适的权限,提交数据到接入服务器;接入服务器发送请求至验证服务器,验证服务器验证后返回结果客户从接入服务器获得结果。

数据共识

分布式验证服务器获得客户的存储请求,得到数据条;验证服务器查询当前的活跃区块是否已有记录,如已有则忽略;验证服务器对数据条中的公钥和信息部分进行签名验证;验证服务器对数据条中的历史区块进行验证,确认合法及包含正确的序列号;验证成功,则将数据条加入验证队列中,并发送验证结果至其他验证节点;验证服务器通过预先设置的共识机制决定当前的共识数据条集合;当共识周期到时,所有符合要求的数据条集合从验证队列写入区块链系统中相应的区块链中;未符合要求的数据条进入下一次共识周期,直到共识完成或者超时。

数据查询

客户通过合适的权限,提交数据到接入服务器;接入服务器访问已验证的区块,根据公钥找出记录并回溯得到所有的历史记录;接入服务器将数据结果返回给查询用户。

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