数据传输方法、区块链节点及分布式数据库
技术领域
本发明涉及数据传输技术领域,特别是涉及数据传输方法、区块链节点及分布式数据库。
背景技术
随着比特币的发行,区块链技术也进入公众视野。由于区块链技术的去中心化、高安全性,因此业界普遍认为区块链技术是下一代金融交换技术的基础核心技术之一,将在账户系统清算,核算和资金结转方面发挥重要的作用。
但区块链技术本身最初是为了比特币(bitcoin)而研发的,因此现有区块链技术本身带有浓厚的比特币特性,为了保证数据的安全性,当有交易数据产生时需要各区块链节点投票显示该交易数据有效时才存储该交易数据。但现代金融交换系统的数据具有高并发、大吞吐量的特性。这就导致大量数据处于投票阶段,当各区块链节点投票无法及时完成时,这些处于投票阶段的数据将无法被有效存储,一方面可能导致数据丢失,另一方面也使得数据存储效率低下。
发明内容
本发明实施例的目的在于提供数据传输方法、区块链节点及分布式数据库,以克服区块链技术必须在投票验证有效后才将数据加入区块链而导致的数据丢失、存储效率低下的问题。具体技术方案如下:
一种数据传输方法,应用于分布式数据库,所述分布式数据库与至少两个区块链节点通信连接,所述方法包括:
分布式数据库获得第一区块链节点对所要写入的数据的正确性验证通过后以区块方式写入的数据;
分布式数据库将被写入的数据推送到其他区块链节点,以使各其他区块链节点对接收的数据的正确性进行验证并根据验证结果对该数据的有效性进行投票;
分布式数据库将投票信息与所述被写入的数据对应存储。
可选的,所述分布式数据库将被写入的数据推送到其他区块链节点,包括:分布式数据库利用PUSH机制将被写入的数据推送到其他区块链节点。
可选的,还包括:
所述分布式数据库对所存储的数据进行定期备份;
分布式数据库在确定当前已存储的数据有误时,将当前已存储的数据恢复为上一次备份的数据。
可选的,所述投票信息包括:投票有效的区块链节点列表和投票无效的区块链节点列表;或者,所述投票信息包括:投票结果,所述投票结果为有效或无效。
可选的,在所述投票信息包括投票结果时,所述方法还包括:
根据所述投票结果为相对应的被写入数据添加有效性标识,所述有效性标识为有效标识或无效标识。
一种数据传输方法,应用于区块链节点中,所述区块链节点与分布式数据库通信连接,所述方法包括:
第一区块链节点对所要写入的数据的正确性进行验证,验证通过后以区块方式将所要写入的数据写入所述分布式数据库中,以使所述分布式数据库将所述被写入的数据推送到其他区块链节点;
各其他区块链节点对接收的数据的正确性进行验证并根据验证结果对该数据的有效性进行投票,以使所述分布式数据库将投票信息与所述被写入的数据对应存储。
一种分布式数据库,所述分布式数据库与至少两个区块链节点通信连接,所述分布式数据库包括:数据获得模块、数据推送模块和信息存储模块,
所述数据获得模块,用于获得第一区块链节点对所要写入的数据的正确性验证通过后以区块方式写入的数据;
所述数据推送模块,用于将被写入的数据推送到其他区块链节点,以使各其他区块链节点对接收的数据的正确性进行验证并根据验证结果对该数据的有效性进行投票;
所述信息存储模块,用于将投票信息与所述被写入的数据对应存储。
可选的,所述数据推送模块具体用于:利用PUSH机制将被写入的数据推送到其他区块链节点,以使各其他区块链节点对接收的数据的正确性进行验证并根据验证结果对该数据的有效性进行投票。
可选的,还包括:备份模块和恢复模块,
所述备份模块,用于对所存储的数据进行定期备份;
所述恢复模块,用于在确定当前已存储的数据有误时,将当前已存储的数据恢复为上一次备份的数据。
可选的,所述投票信息包括:投票有效的区块链节点列表和投票无效的区块链节点列表;或者,所述投票信息包括:投票结果,所述投票结果为有效或无效。
可选的,在所述投票信息包括投票结果时,所述分布式数据库还包括:标识添加模块,用于根据所述投票结果为相对应的被写入数据添加有效性标识,所述有效性标识为有效标识或无效标识。
一种区块链节点,所述区块链节点与分布式数据库通信连接,所述区块链节点包括:验证模块、数据发送模块和投票模块,
所述验证模块,用于获得数据并对所述数据的正确性进行验证,如所述数据由所述分布式数据库发送至该区块链节点,则触发所述投票模块;如果所述数据不是由所述分布式数据库发送至该区块链节点的,则验证通过后触发所述数据发送模块;
所述数据发送模块,用于将验证通过后的数据写入所述分布式数据库以使所述分布式数据库将被写入的数据推送到其他区块链节点,使各其他区块链节点对接收的数据的正确性进行验证并根据验证结果对该数据的有效性进行投票;
所述投票模块,用于根据验证结果对该数据的有效性进行投票,以使所述分布式数据库将投票信息与所述被写入的数据对应存储。
本发明实施例提供了数据传输方法、区块链节点及分布式数据库,分布式数据库获得第一区块链节点对所要写入的数据的正确性验证通过后以区块方式写入的数据;分布式数据库将被写入的数据推送到其他区块链节点,以使各其他区块链节点对接收的数据的正确性进行验证并根据验证结果对该数据的有效性进行投票;分布式数据库将投票信息与所述被写入的数据对应存储。本发明将分布式数据库与区块链技术进行了结合,当区块链节点获得数据并验证通过后可以首先将该数据以区块方式写入分布式数据库中进行存储,然后其他区块链节点再进行投票。避免了区块链技术必须在投票验证有效后才将数据加入区块链而导致的数据丢失、存储效率低下的问题。
当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的分布式数据库与区块链节点连接示意图;
图2为本发明实施例提供的一种数据传输方法的流程图;
图3为本发明实施例提供的另一种数据传输方法的流程图;
图4为本发明实施例提供的另一种数据传输方法的流程图;
图5为本发明实施例提供的一种分布式数据库的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请结合图1及图2,本发明实施例提供了一种数据传输方法,应用于分布式数据库001,所述分布式数据库001与至少两个区块链节点通信连接,如图2所示,该方法可以包括:
S001、分布式数据库001获得第一区块链节点002对所要写入的数据的正确性验证通过后以区块方式写入的数据;
其中,分布式数据库001可以为开源分布式数据库。本发明将分布式数据库与区块链技术进行了结合,当区块链节点获得数据后并验证通过后可以首先将该数据以区块方式写入分布式数据库中进行存储,然后再进行投票即可。这样就避免了区块链技术必须在投票验证有效后才将数据加入区块链而导致的数据丢失、存储效率低下的问题。
其中,所要写入的数据可以为业务数据,具体的,如交易数据。本发明中的区块链节点可以为矿机。
第一区块链节点002可以为产生该所要写入的数据的金融业务点所连接的区块链节点。该区块链节点可以设置于该金融业务点的设备中。当然,一个金融业务点的设备中可以设置有一个或多个区块链节点,同样,一个区块链节点也可以设置在一个金融业务点的设备中或分布在多个金融业务点的设备中。
第一区块链节点002在获得所要写入的数据后,需要首先进行正确性验证,防止将明显错误的数据写入分布式数据库001中。
S002、分布式数据库001将被写入的数据推送到其他区块链节点003,以使各其他区块链节点003对接收的数据的正确性进行验证并根据验证结果对该数据的有效性进行投票;
具体的,分布式数据库可以利用PUSH机制将被写入的数据推送到其他区块链节点。
通过PUSH机制,每次分布式数据库的修改都会告知各区块链节点,这也就实现了区块链节点对分布式数据库的监听。当分布式数据库中有数据被修改(包括写入数据、删除数据、调整数据等)时,各区块链节点就可以对此次修改进行验证,从而保证每次修改的数据的正确性。
分布式数据库可以设于各金融业务点的设备中,如设于各区块链节点中或金融业务点的其他设备中。当然,分布式数据库也可以设于各金融业务点的设备外的其他设备中。
S003、分布式数据库001将投票信息与所述被写入的数据对应存储。
在实际应用中,由于被写入的数据是第一区块链节点002验证通过后才写入分布式数据库的,因此分布式数据库001可以将第一区块链节点002对该数据的验证结果作为投票信息的一部分与被写入的数据对应存储。
具体的投票有效的判断标准可以有多种,如投票有效的比例为100%,或投票有效的比例为80%,或者投票有效的区块链节点个数不低于预设数值。
其中,投票信息可以包括:投票有效的区块链节点列表和投票无效的区块链节点列表;或者,所述投票信息包括:投票结果,所述投票结果为有效或无效。
在所述投票信息包括投票结果时,图2所示方法还可以包括:
根据所述投票结果为相对应的被写入数据添加有效性标识,所述有效性标识为有效标识或无效标识。
当投票结果为有效时,各区块链节点可以使该被写入的数据形成区块链。
由于添加了有效性标识,因此当分布式数据库中的数据进行使用时就可以根据该有效性标识确定数据的有效性,从而决定是否进行使用。
本发明实施例提供的一种数据传输方法,将分布式数据库与区块链技术进行了结合,当区块链节点获得数据后并验证通过后可以首先将该数据以区块方式写入分布式数据库中进行存储,然后分布式数据库再将被写入的数据推送到其他区块链节点进行投票。这样就避免了区块链技术必须在投票验证有效后才将数据加入区块链而导致的数据丢失、存储效率低下的问题。可见,本发明可以使得数据在传输过程中不易丢失,而且数据的存储效率较高。
如图3所示,本发明实施例提供的另一种数据传输方法,还可以包括:
S004、所述分布式数据库对所存储的数据进行定期备份;
S005、分布式数据库在确定当前已存储的数据有误时,将当前已存储的数据恢复为上一次备份的数据。
通过上述备份-恢复机制就可以使得即使有错误数据被写入分布式数据库,在图2所示步骤S002中各区块链节点根据验证结果对数据的有效性进行投票,确定数据有误时,分布式数据库可以恢复为上一次备份的数据,从而保证分布式数据库中数据的安全性。可选的,步骤S005可以在步骤S002确定数据有误之后执行。当然,由于确定数据有效性的方式非常多,并不仅限于步骤S002的方式,因此步骤S005也可以在其他确定数据有效性的方式确定数据有误之后执行。
其中,步骤S004、步骤S005与图2所示的步骤之间的执行顺序本发明在此不做限定。
相应的,请结合图1和图4,本发明还提供了一种数据传输方法,应用于区块链节点中,所述区块链节点与分布式数据001通信连接,如图4所示,该方法可以包括:
S100、第一区块链节点002对所要写入的数据的正确性进行验证,验证通过后以区块方式将所要写入的数据写入所述分布式数据库001中,以使所述分布式数据库001将所述被写入的数据推送到其他区块链节点003;
S200、各其他区块链节点003对接收的数据的正确性进行验证并根据验证结果对该数据的有效性进行投票,以使所述分布式数据库001将投票信息与所述被写入的数据对应存储。
本发明实施例提供的一种数据传输方法,将分布式数据库与区块链技术进行了结合,某区块链节点获得数据后并验证通过后可以首先将该数据以区块方式写入分布式数据库中进行存储,然后分布式数据库再将被写入的数据推送到其他区块链节点进行投票。这样就避免了区块链技术必须在投票验证有效后才将数据加入区块链而导致的数据丢失、存储效率低下的问题。可见,本发明可以使得数据在传输过程中不易丢失,而且数据的存储效率较高。
与图2所示方法实施例相对应,请结合图1及图5,本发明实施例还提供了一种分布式数据库,所述分布式数据库001与至少两个区块链节点通信连接,所述分布式数据库001包括:数据获得模块100、数据推送模块200和信息存储模块300,
所述数据获得模块100,用于获得第一区块链节点001对所要写入的数据的正确性验证通过后以区块方式写入的数据;
其中,分布式数据库001可以为开源分布式数据库。本发明将分布式数据库与区块链技术进行了结合,当区块链节点获得数据后并验证通过后可以首先将该数据以区块方式写入分布式数据库中进行存储,然后再进行投票即可。这样就避免了区块链技术必须在投票验证有效后才将数据加入区块链而导致的数据丢失、存储效率低下的问题。
其中,所要写入的数据可以为业务数据,具体的,如交易数据。本发明中的区块链节点可以为矿机。
第一区块链节点002可以为产生该所要写入的数据的金融业务点所连接的区块链节点。该区块链节点可以设置于该金融业务点的设备中。当然,一个金融业务点的设备中可以设置有一个或多个区块链节点,同样,一个区块链节点也可以设置在一个金融业务点的设备中或分布在多个金融业务点的设备中。
第一区块链节点002在获得所要写入的数据后,需要首先进行正确性验证,防止将明显错误的数据写入分布式数据库001中。
所述数据推送模块200,用于将被写入的数据推送到其他区块链节点003,以使各其他区块链节点003对接收的数据的正确性进行验证并根据验证结果对该数据的有效性进行投票;
其中,所述数据推送模块可以具体用于:利用PUSH机制将被写入的数据推送到其他区块链节点,以使各其他区块链节点对接收的数据的正确性进行验证并根据验证结果对该数据的有效性进行投票。
通过PUSH机制,每次分布式数据库的修改都会告知各区块链节点,这也就实现了区块链节点对分布式数据库的监听。当分布式数据库中有数据被修改(包括写入数据、删除数据、调整数据等)时,各区块链节点就可以对此次修改进行验证,从而保证每次修改的数据的正确性。
分布式数据库可以设于各金融业务点的设备中,如设于各区块链节点中或金融业务点的其他设备中。当然,分布式数据库也可以设于各金融业务点的设备外的其他设备中。
所述信息存储模块300,用于将投票信息与所述被写入的数据对应存储。
在实际应用中,由于被写入的数据是第一区块链节点002验证通过后才写入分布式数据库的,因此分布式数据库001可以将第一区块链节点002对该数据的验证结果作为投票信息的一部分与被写入的数据对应存储。
具体的投票有效的判断标准可以有多种,如投票有效的比例为100%,或投票有效的比例为80%,或者投票有效的区块链节点个数不低于预设数值。
其中,所述投票信息可以包括:投票有效的区块链节点列表和投票无效的区块链节点列表;或者,所述投票信息包括:投票结果,所述投票结果为有效或无效。
在所述投票信息包括投票结果时,所述分布式数据库001还可以包括:标识添加模块,用于根据所述投票结果为相对应的被写入数据添加有效性标识,所述有效性标识为有效标识或无效标识。
当投票结果为有效时,各区块链节点可以使该被写入的数据形成区块链。
由于添加了有效性标识,因此当分布式数据库中的数据进行使用时就可以根据该有效性标识确定数据的有效性,从而决定是否进行使用。
本发明实施例提供的一种分布式数据库,将分布式数据库与区块链技术进行了结合,当区块链节点获得数据后并验证通过后可以首先将该数据以区块方式写入分布式数据库中进行存储,然后分布式数据库再将被写入的数据推送到其他区块链节点进行投票。这样就避免了区块链技术必须在投票验证有效后才将数据加入区块链而导致的数据丢失、存储效率低下的问题。可见,本发明可以使得数据在传输过程中不易丢失,而且数据的存储效率较高。
进一步,图5所示分布式数据库还可以包括:备份模块和恢复模块,
所述备份模块,用于对所存储的数据进行定期备份;
所述恢复模块,用于在确定当前已存储的数据有误时,将当前已存储的数据恢复为上一次备份的数据。
通过上述备份-恢复机制就可以使得即使有错误数据被写入分布式数据库,在各区块链节点根据验证结果对数据的有效性进行投票,确定数据有误时,分布式数据库可以恢复为上一次备份的数据,从而保证分布式数据库中数据的安全性。
与图4所示方法实施例相对应,本发明还提供了一种区块链节点,所述区块链节点与分布式数据库001通信连接,所述区块链节点可以包括:验证模块、数据发送模块和投票模块,
所述验证模块,用于获得数据并对所述数据的正确性进行验证,如所述数据由所述分布式数据库001发送至该区块链节点,则触发所述投票模块;如果所述数据不是由所述分布式数据库发送至该区块链节点的,则验证通过后触发所述数据发送模块;
所述数据发送模块,用于将验证通过后的数据写入所述分布式数据库001以使所述分布式数据库001将被写入的数据推送到其他区块链节点,使各其他区块链节点对接收的数据的正确性进行验证并根据验证结果对该数据的有效性进行投票;
所述投票模块,用于根据验证结果对该数据的有效性进行投票,以使所述分布式数据库001将投票信息与所述被写入的数据对应存储。
本发明实施例提供的一种区块链节点,可以在获得数据后并验证通过后首先将该数据以区块方式写入分布式数据库中进行存储,然后分布式数据库再将被写入的数据推送到其他区块链节点进行投票。这样就避免了区块链技术必须在投票验证有效后才将数据加入区块链而导致的数据丢失、存储效率低下的问题。可见,本发明可以使得数据在传输过程中不易丢失,而且数据的存储效率较高。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。