区块链分布式账本存储方法及服务器与流程

文档序号:11251062阅读:8339来源:国知局
区块链分布式账本存储方法及服务器与流程

本发明涉及数据库技术领域,具体而言,涉及一种区块链分布式账本存储方法及服务器。



背景技术:

在传统的大数据存储方法中,不具有去中心化控制的功能,吞吐量和容量方面存在很大的缺陷,大型数据库可扩展性差,使得数据查询存在一定的困难,单个数据库的压力也较大,因此,急需一种区块链分布式账本存储方法及服务器,以解决上述的技术问题。



技术实现要素:

本发明的目的在于提供一种区块链分布式账本存储方法及服务器,以同时保护大型数据库的可扩展性、不可靠的去中心化和去中心化区块链。

本发明是这样实现的:

本发明提供一种区块链分布式账本存储方法,应用于服务器,所述服务器包括第一分布式数据库和第二分布式数据库,所述第一分布式数据库和第二分布式数据库之间通过内嵌的一致性算法实现驱动器之间的一致性,所述区块链分布式账本存储方法包括以下步骤:将接收的交易记录存储至所述第一分布式数据库;将所述交易记录随机分派到另一服务器;将由多个交易记录构成的交易记录集转换成有序列表;为所述有序列表创建一个块,并将所述块存储至所述第二数据库;对所述块进行投票,确认所述块是否有效,并将投票信息添加到所述块的投票列表里;当所述块无效时,将所述块重新插入到所述第一分布式数据库进行确认。

本发明还提供一种服务器,所述服务器包括第一分布式数据库和第二分布式数据库,所述第一分布式数据库和第二分布式数据库之间通过内嵌的一致性算法实现驱动器之间的一致性,所述服务器还包括:处理器,用于实现各指令;存储器,用于存储多条指令,所述多条指令适于由所述处理器加载并执行:将接收的交易记录存储至所述第一分布式数据库;将所述交易记录随机分派到另一服务器;将由多个交易记录构成的交易记录集转换成有序列表;为所述有序列表创建一个块,并将所述块存储至所述第二数据库;对所述块进行投票,确认所述块是否有效,并将投票信息添加到所述块的投票列表里;当所述块无效时,将所述块重新插入到所述第一分布式数据库进行确认。

相对现有技术,本发明具有以下有益效果:本发明提供的一种区块链分布式账本存储方法及服务器,服务器包括第一分布式数据库和第二分布式数据库,第一分布式数据库和第二分布式数据库之间通过内嵌的一致性算法实现驱动器之间的一致性。并通过一致性算法更新第一分布式数据库和第二分布式数据库以及服务器之间的交易记录。本发明结合了传统的区块链数据库和传统的分布式数据库的优点,具有区块链型的去中心化控制,免疫攻击(不变性),以及创建和转移数字资产的优点。同时保护大型数据库的可扩展性、不可靠的去中心化和去中心化区块链。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1示出了本发明所提供的一种区块链分布式账本存储方法的应用环境示意图。

图2示出了本发明所提供的一种服务器的示意图。

图3示出了本发明所提供的一种区块链分布式账本存储方法的步骤图。

图4示出了本发明所提供的一种区块链分布式账本系统的体系结构示意图。

图5a至图5c示出了客户端与本发明所提供的一种区块链分布式账本系统之间的交易记录流示意图。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例所提供的区块链分布式账本存储方法可应用于如图1所示的应用环境中。如图1所示,服务器100、客户端200位于网络400中,客户端200与服务器100通过该网络400进行数据交互。所述客户端200可以生成用户的交易记录300,所述客户端200通过所述网络400访问所述服务器100后,可通过所述网络400将交易记录300发送至服务器100进行存储。

本发明实施例提出的区块链分布式账本存储方法可适用于服务器100。该服务器100可以是数据库服务器。该客户端200可以是,但不限于智能手机、个人电脑(personalcomputer,pc)、平板电脑、个人数字助理(personaldigitalassistant,pda)、移动上网设备(mobileinternetdevice,mid)等。所述客户端200的操作系统可以是,但不限于,安卓(android)系统、ios(iphoneoperatingsystem)系统、windowsphone系统、windows系统等。

如图2所示,是服务器100的方框示意图。服务器100包括存储器101、存储控制器102及处理器103。所述存储器101、存储控制器102及处理器103,各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。第一分布式数据库1011、第二分布式数据库1012包括至少一个可以软件或固件(firmware)的形式存储于所述存储器101中的程序模块,所述第一分布式数据库1011和第二分布式数据库1012之间通过内嵌的一致性算法实现驱动器之间的一致性。所述处理器103用于执行存储器101中存储的可执行程序模块。

其中,存储器101可以是,但不限于,随机存取存储器101(randomaccessmemory,ram),只读存储器readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。其中,存储器101用于存储程序,所述处理器103在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的服务器100所执行的方法可以应用于处理器103中,或者由处理器103实现。

处理器103可能是一种集成电路芯片,具有信号的处理能力。上述的处理器103可以是通用处理器103,包括中央处理器103(centralprocessingunit,简称cpu)、网络处理器103(networkprocessor,简称np)等;还可以是数字信号处理器103(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器103可以是微处理器或者该处理器103也可以是任何常规的处理器等。

图3示出了本发明所提供的一种区块链分布式账本存储方法的步骤图。本发明提供的一种区块链分布式账本存储方法包括以下步骤:

步骤s1,将接收的交易记录300存储至第一分布式数据库1011。

在本发明实施例中,交易记录300由客户端200随机发送,而不由服务器200主动获取。当服务器200接收到客户端200发送的交易记录之后,将交易记录存储至第一分布式数据库1011,第一分布式数据库1011可以是现有的大数据数据库。我们不能干涉每个数据库内部的工作。这样,我们能得到数据库可扩展性的优势。

步骤s2,将所述交易记录300随机分派到另一服务器。

在本发明中,可以有多个服务器100,每个服务器100都包括第一分布式数据库1011和第二分布式数据库1012。多个所述服务器100之间通过一致性算法构成节点联合,交易记录由节点联合中的一个服务器接收,并被该服务器分配到节点联合中的任一服务器,并存储至该服务器的第一分布式数据库1011。

步骤s3,将由多个交易记录构成的交易记录集转换成有序列表。

步骤s4,为所述有序列表创建一个块,并将所述块存储至所述第二数据库1012。第二分布式数据库1012也可以是现有的大数据数据库。所述块包括id、时间戳、交易记录以及投票信息。

步骤s5,对所述块进行投票,确认所述块是否有效,并将投票信息添加到所述块的投票列表里。

在本发明实施例中,每一个服务器可以作为一个签名节点,如果签名节点要判定这个块是有效的或者无效的,它将进行投票。为了做决定,这个签名节点会检查在这个块上的每一个交易记录,如果它找到一个无效的交易记录,这个签名节点就会投票:这个块是无效的。如果签名节点没有找到无效的交易记录,它将投票:这个块是有效的。

步骤s6,当所述块无效时,将所述块重新插入到所述第一分布式数据库进行确认。此时,第一分布式数据库可以对所述块再次进行投票。

图4示出了本发明所提供的一种区块链分布式账本系统的体系结构示意图。

dls(distributedledgersystem,分布式账本系统)系统为用户提供了它基于开发标准的xjdbc接口、原生api(c++/java等),在内部具有两个分布式数据库:s(交易记录集)和c(区块链),它们被dls一致性算法连接起来。s接收和分配进来的交易记录,c保持交易记录的有序。签名节点利用dls一致性算法来更新s、c,以及他们之间的交易记录。一致性算法运行在每一个单一的服务器节点。非签约用户也可以链接到dls;根据许可,它们可以读取、发行资产、转移资产以及更多的操作。

每一个分布式数据库:s和c,都可以是现成的大数据数据库。每一个数据库运行自身内嵌的paoxs一致性算法来实现驱动器之间的一致性。第一个数据库有“backlog”交易记录---s的一个无序交易记录集。当一个交易记录进来时,它被接收的节点验证,如果它是有效的(通过这个节点验证),它将被存储到s(这之后到达的相同交易记录就将被拒绝)。这个接收的节点也会随机的将交易记录分派到其他的一个节点。

假设有n个签名节点。sk={tk,1,tk,2,...}是被分派到节点k的一个交易记录集。节点k利用dls一致性算法处理来自s交易记录的过程如下:它将sk里无序的交易记录转换成一个有序的列表,为这些交易记录创建一个块,并且把这个块放到第二个数据库c中。c是一个有序的块的列表,在这里,每个块都有父块和它自身数据的参考,这就是区块链。

如果签名节点认为这个块是有效的或者无效的,它将进行投票。为了做决定,这个签名节点会检查在这个块上的每一个交易记录,如果它找到一个无效的交易记录,这个签名节点就会投票:这个块是无效的。如果签名节点没有找到无效的交易记录,它将投票:这个块是有效的。

每个块一开始都是不确定的,没有来自签名节点的投票。一旦一个块有大多数肯定的(有效的)投票,或者大多数否定的(无效的)投票,这个块就会从不确定变成确定有效或者确定无效,投票直到这个块停止工作。一旦它被确定,它就被视为“刻在石头上”。这个过程类似于在比特币区块链上的多确认思想。

图5a至图5c示出了客户端200与本发明所提供的一种区块链分布式账本系统之间的交易记录流示意图高级结构。在高级结构中每一个卡片都是一个物理机。客户端(client)连接到dls服务器节点(servernode)。然后客户端可以发送交易记录给任何dls服务器节点。

如图5a所示,客户端有一个id#a的交易记录,和一个有效负载payload。一开始backlogs是空的,并且chainc一开始只有一个不包含交易记录的原始的块。然后,客户端把交易记录插入到backlogs中,并分配交易记录到节点1,3,2。其他的客户端也有交易记录,他们发送到服务器节点。

当一个客户端提交一个交易记录时,接收的节点把它分配到节点联合里的一个节点,也可能是它自己,并且把它存储在backlogs中。图4所示,节点1被分配了3个交易记录,id分别是#a,#g,#h。节点3被分配了id为#b和#e的交易记录。节点2被分配了id为#d和#c的交易记录。还没有东西被存储在chainc(除了原始的块)。

然后,如图5b所示,节点1为来自backlogs的交易记录#a,#g和#h创建了一个块来保持它们,然后把这个块写入chainc,将它已分配的交易记录从backlogs移动到chainc。这个块指明了c之前的块。节点3也处理了它分配的交易记录。

当一个块第一次被写入c时,它一开始是不确定的。每一个服务器节点可以肯定的(支持的)或者否定的(反对的)对块进行投票。如果所有以前的块不是不确定的,并且块上的所有交易记录都是有效的,那么这个块只能被投票为肯定的。一旦一个块有大多数肯定的(有效的)投票,或者大多数否定的(无效的)投票,这个块就会从不确定变成确定有效或者确定无效。

在这个例子中,节点1创建的块被投票表决,并且变成确定有效。然后,来自节点3的块被投票表决,变成确定无效的。图5b中,清晰背景表示有效的块,阴影背景表示无效的块。来自无效块的交易记录将被重新插入backlogs重新确认。

如图5c所示,当这个完整的块被认为是无效的时候,在这个无效块上的一些交易记录可能是有效的,所以dls给它们一个机会,使交易记录#b和#e重新插入到backlogs重新确认。同时,dls存储无效块,dls并没有移除这个无效块,因为这个块已经被标记为无效的,磁盘空间并不是问题,并且它能更快更简洁地把块保持在这里。类似的,在一个块被确定之后投票是不会停止的,因为对每个节点来说它是更快的简化投票,而不用额外的步骤来检查是否有必要投票。

本发明提供的一种区块链分布式账本存储方法及服务器,服务器包括第一分布式数据库和第二分布式数据库,第一分布式数据库和第二分布式数据库之间通过内嵌的一致性算法实现驱动器之间的一致性。并通过一致性算法更新第一分布式数据库和第二分布式数据库以及服务器之间的交易记录。本发明结合了传统的区块链数据库和传统的分布式数据库的优点,具有区块链型的去中心化控制,免疫攻击(不变性),以及创建和转移数字资产的优点。同时保护大型数据库的可扩展性、不可靠的去中心化和去中心化区块链。

在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

在本发明的描述中,需要说明的是,术语“上”、“下”、“左”、“右”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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