本发明涉及区块链技术领域,具体涉及一种区块链系统及区块链系统的架构方法。
背景技术:
目前区块链系统中的每一个节点均需要存储区块链的所有数据,当使用类似工作量证明机制的一致性算法时,每个节点都需要参与运算,故对每个节点服务器的存储能力及运算能力有较高要求,提高了成为区块链系统中的节点的门槛。
技术实现要素:
本发明提供了一种区块链系统及区块链系统的架构方法,可能解决现有技术的不足和缺陷。
本发明解决上述技术问题的技术方案如下:提供了一种区块链系统,包括运行组,所述运行组包括多个运行节点,其中的部分运行节点或者全部运行节点中的每个运行节点配置至少一个从属的子备份节点;
当运行节点没有子备份节点时,该运行节点中存储有至少一条完整的区块链数据;
当运行节点具有从属的子备份节点时,该运行节点以及其从属的每一个子备份节点,分别用于存储一条完整的区块链数据的一部分或全部,该运行节点与其从属的所有子备份节点所存储的区块链数据之和至少包括一条完整的区块链数据。
本发明的有益效果为:为区块链系统中的运行节点配置子备份节点,为运行节点分摊数据,减轻运行节点的压力,同时,通过为运行节点配置子备份节点,可以使整个区块链系统存储的数据量扩大,整个区块链中节点的规模越大,整个区块链系统的抗攻击能力越强。
在上述技术方案的基础上,本发明还可以作如下改进。
进一步的,所述区块链系统包括多个区块,每一个区块存储有一条完整的区块链数据的一部分,多个区块存储的数据之和至少组成一条完整的区块链数据;
当运行节点没有子备份节点时,该运行节点存储有至少一条完整的区块链中所有的有效区块中的数据;
当运行节点具有从属的子备份节点时,该运行节点以及其从属的每一个子备份节点,分别用于存储区块链系统中若干个有效区块中的数据,组成至少一条完整的区块链数据。
进一步的,每一个所述运行节点还用于产生区块,并向其它的运行节点广播该区块,当该区块被认定为有效区块时,每一个运行节点或者运行节点从属的子备份节点存储该区块。
进一步的,所述区块链系统还包括备份组,所述备份组包括多个游离形式的备份节点;
每一个游离形式的所述备份节点,用于存储区块链系统认定为有效的若干个区块中的数据,多个备份节点所存储的区块数据之和至少包括一条完整的区块链数据。
所述进一步的有益效果为:为整个区块链系统配备了多个游离形式的备份节点,当运行节点崩溃或受到攻击时,可通过备份节点进行恢复,提高整个区块链系统的抗攻击能力。
为了解决本发明的技术问题,还提供了一种区块链的架构方法,包括:
为区块链系统中运行组的部分运行节点或者全部运行节点中的每一个运行节点配置至少一个从属的子备份节点,每一个运行节点与其从属的所有子备份节点形成一个整体;
其中,当运行节点没有子备份节点时,该运行节点中存储有至少一条完整的区块链数据;当运行节点具有从属的子备份节点时,该运行节点以及其从属的每一个子备份节点,分别用于存储一条完整的区块链数据的一部分或全部,该运行节点与其从属的所有子备份节点所存储的区块链数据之和至少包括一条完整的区块链数据。
本发明的有益效果为:为区块链系统中的运行节点配置子备份节点,为运行节点分摊数据,减轻运行节点的压力,同时,通过为运行节点配置子备份节点,可以使整个区块链系统存储的数据量扩大,整个区块链中节点的规模越大,整个区块链系统的抗攻击能力越强。
在上述技术方案的基础上,本发明还可以作如下改进。
进一步的,所述区块链系统包括多个区块,每一个区块存储有一条完整的区块链数据的一部分,多个区块存储的数据之和组成一条完整的区块链数据;
当运行节点没有子备份节点时,该运行节点存储有至少一条完整的区块链中所有的有效区块中的数据;
当运行节点具有从属的子备份节点时,该运行节点以及其从属的每一个子备份节点,分别用于存储区块链系统中若干个有效区块中的数据,组成至少一条完整的区块链数据。
进一步的,每一个所述运行节点产生区块,并向其它的运行节点广播该区块,当该区块被认定为有效区块时,每一个运行节点或者运行节点从属的子备份节点存储该区块。
进一步的,还包括:
为区块链系统配置备份组,所述备份组包括多个游离形式的备份节点,每一个游离形式的所述备份节点存储区块链系统认定为有效的若干个区块中的数据,多个备份节点所存储的区块数据之和至少包括一条完整的区块链数据。
所述进一步的有益效果为:为整个区块链系统配备了多个游离形式的备份节点,当运行节点崩溃或受到攻击时,可通过备份节点进行恢复,提高整个区块链系统的抗攻击能力。
进一步的,运行节点产生的所述区块中标识有产生区块的时间戳,还包括:
当区块链系统接收到数据读取请求时,根据数据读取请求中需要查询的区块的地址和时间戳信息,从距离查询者较近的运行节点或者其从属子备份节点中查询对应的区块数据,并返回给查询者。
所述进一步的有益效果为:在进行数据查询时,由于运行节点配置了子备份节点,当运行节点忙碌时,可通过子备份节点查询数据,减轻了运行节点的压力,提高了数据查询的速度。
附图说明
图1为实施例的一种区块链系统连接框图;
图2为另一实施例的一种区块链系统连接框图;
图3为实施例的一种区块链系统的架构方法流程图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
实施例1、一种区块链系统。
参见图1,本实施例提供的区块链系统包括运行组,所述运行组包括多个运行节点,其中的一部分运行节点或者全部运行节点中的每一个运行节点配置至少一个从属的子备份节点;
当运行节点没有子备份节点时,该运行节点中存储有至少一条完整的区块链数据;当运行节点具有从属的子备份节点时,该运行节点以及其从属的每一个子备份节点,分别用于存储一条完整的区块链数据的一部分或全部,该运行节点与其从属的所有子备份节点所存储的区块链数据之和至少包括一条完整的区块链数据,也即该运行节点与其从属的子备份节点形成一个整体,共同存储有至少一条完整的区块链技术。
应理解为,区块链系统中有多个运行节点,为所有运行节点中一部分运行节点或者全部的运行节点的每一个运行节点配置一个或者多个子备份节点,即运行节点可以单独使用,可以配置自备份节点共同使用。当运行节点没有配置子备份节点时,该运行节点中存储有至少一条完整的区块链数据;当运行节点具有从属的子备份节点时,该运行节点以及其从属的所有子备份节点形成一个整体,共同存储有至少一条完整的区块链数据,其中,为一个运行节点配置的子备份节点的数量可按具体情况而定。
为运行节点配置子备份节点,子备份节点为运行节点分摊数据存储压力,减轻运行节点的压力,同时,通过为运行节点配置子备份节点,可以使整个区块链系统存储的数据量扩大,整个区块链中节点的规模越大,整个区块链系统的抗攻击能力越强。
可选的,所述区块链系统包括多个区块,每一个区块存储有一条完整的区块链数据的一部分,多个区块存储的数据之和至少组成一条完整的区块链数据;
当运行节点没有子备份节点时,该运行节点存储有至少一条完整的区块链中所有的有效区块中的数据;
当运行节点具有从属的子备份节点时,该运行节点以及其从属的每一个子备份节点,分别用于存储区块链系统中若干个有效区块中的数据,组成一条完整的区块链数据。
可以理解,每一个运行节点或者子备份节点在存储数据时是以区块为单位进行存储,当运行节点没有子备份节点时,该运行节点存储有整个区块链中所有的有效区块中的数据;当运行节点具有子备份节点时,每一个运行节点以及其从属的子备份节点存储的区块数据之和至少包括一条完整的区块链数据,保证数据的完整性。
可选的,每一个所述运行节点用于产生区块,并向其它的运行节点广播该区块,当该区块被认定为有效区块时,每一个运行节点或者运行节点从属的子备份节点存储该区块,其中,产生的区块中标识有该区块产生的时间戳。
可理解为,区块链系统中的运行节点主要用于生成区块、验证区块,另外,还具有存储一部分区块数据的功能,运行节点的子备份节点主要是用来存储区块数据的,为运行节点分摊压力。
其中,一个时间戳的数据由一个运行节点产生成区块数据,当运行节点产生了新区块时,将该产生的新区块广播给其它的运行节点。其它的运行节点对产生的该区块进行有效性验证,本实施例中对产生的新区块的有效性验证的方式有多种,比如,工作量证明机制(POW)、股权证明机制(POS)和授权股权证明机制(DPOS),其中的授权股权证明机制具体的验证方式为:从所有的运行节点中确定预定数量的运行节点作为代表节点,当所有的代表节点中有一半认定该新区块有效时,则区块链系统认为产生的该区块有效,此时,区块链中的每一个运行节点或者该运行节点的从属子备份节点存储该区块。
采用运行节点中的代表节点来共同验证产生的区块是否有效,使得最后确定出来的区块的有效性更具权威性,提高了区块链中的数据的正确性。
可选的,作为本发明的另一个实施例,还包括:当进行区块链数据查询时,查询者向区块链系统发送数据读取请求,当区块链系统接收到数据读取请求时,根据数据读取请求中需要查询的区块的地址和时间戳信息,从距离查询者较近的运行节点或者其从属子备份节点中查询对应的区块数据,并返回给查询者。
其中,数据读取请求中携带有查询者的IP地址、需要查询的区块的地址以及区块的时间戳,根据查询者的IP地址可知查询者的地理位置,因此,区块链系统选择从距离查询者较近的运行节点或者子备份节点中查询数据,然后根据需要查询的区块的地址和时间戳确定需要查询的区块所在的位置,即在运行节点中还是其从属的哪个子备份节点中,查询到对应的区块链数据后,返回给查询者,至此完成区块链数据的查询过程。
比如,组成整个区块链中的运行节点的IP地址位置有些在北京,有些在武汉,当查询者的IP地址处于武汉时,则从IP地址处于武汉的运行节点或者该运行节点的子备份节点中查询对应的区块数据,并返回给查询者,这样提高了数据查询的速度。同时,在进行数据查询时,由于运行节点配置了子备份节点,当运行节点忙碌时,可通过子备份节点查询数据,减轻了运行节点的压力,提高了数据查询的速度。
实施例2、一种区块链系统。
参见图2,本实施例提供的区块链系统所述运行组包括多个运行节点,其中的部分运行节点或者全部运行节点中的每个运行节点配置至少一个从属的子备份节点;
当运行节点没有子备份节点时,该运行节点中存储有至少一条完整的区块链数据;当运行节点具有从属的子备份节点时,该运行节点以及其从属的每一个子备份节点,分别用于存储一条完整的区块链数据的一部分或全部,该运行节点与其从属的所有子备份节点所存储的区块链数据之和至少包括一条完整的区块链数据;
以及所述区块链系统还包括备份组,所述备份组包括多个游离形式的备份节点;每一个游离形式的所述备份节点,用于存储区块链系统认定为有效的若干个区块中的数据,多个备份节点所存储的区块数据之和至少包括一条完整的区块链数据。
本实施例中的区块链系统不仅包括上述实施例1的一种区块链系统中的运行组,还包括备份组,其它的技术特征可参见上述实施例1中的技术特征,当区块链系统中的运行节点产生新区块且为有效区块时,由多个游离形式的备份节点中的某个备份节点存储该区块,具体的由哪一个备份节点存储该区块可以根据设定的规则轮流进行存储。同时,多个备份节点所存储的区块数据之和至少包括一条完整的区块链数据,保证了数据的完整性。
其中,为整个区块链系统配置多个游离形式的备份节点,当运行节点崩溃或受到攻击时,可通过备份节点进行恢复,提高整个区块链系统的抗攻击能力。
实施例3、一种区块链的架构方法。
本实施例提供的区块链的架构方法包括:
为区块链系统中运行组的部分运行节点或者全部运行节点中的每一个运行节点配置至少一个从属的子备份节点,每一个运行节点与其从属的至少一个子备份节点形成一个整体;
其中,当运行节点没有子备份节点时,该运行节点中存储有至少一条完整的区块链数据;当运行节点具有从属的子备份节点时,该运行节点以及其从属的每一个子备份节点,分别用于存储一条完整的区块链数据的一部分或全部,该运行节点与其从属的所有子备份节点所存储的区块链数据之和至少包括一条完整的区块链数据。
应理解为,为运行节点配置子备份节点,为运行节点分摊数据存储压力,减轻运行节点的压力,同时,通过为运行节点配置子备份节点,可以使整个区块链系统存储的数据量扩大,整个区块链中节点的规模越大,整个区块链系统的抗攻击能力越强。
可选的,所述区块链系统包括多个区块,每一个区块存储有一条完整的区块链数据的一部分,多个区块存储的数据之和至少组成一条完整的区块链数据;
当运行节点没有子备份节点时,该运行节点存储有一条完整的区块链中所有的有效区块中的数据;当运行节点具有从属的子备份节点时,该运行节点以及其从属的每一个子备份节点,分别用于存储区块链系统中若干个有效区块中的数据,组成一条完整的区块链数据。
可以理解为,每一个运行节点或者子备份节点在存储数据时是以区块为单位进行存储,当运行节点没有子备份节点时,该运行节点存储有整个区块链中所有的有效区块中的数据;当运行节点具有子备份节点时,每一个运行节点以及其从属的子备份节点存储的区块数据之和至少包括一条完整的区块链数据,保证了区块链数据的完整性。
可选的,本申请的另一个实施例中每一个所述运行节点产生区块,并向其它的运行节点广播该区块,当该区块被认定为有效区块时,每一个运行节点或者运行节点从属的子备份节点存储该区块,其中,产生的区块中标识有该区块产生的时间戳。
本实施例在产生的区块中标识有该区块产生的时间戳,方便查询时,按照时间戳对区块数据进行查询。
可选的,还包括:当区块链系统接收到数据读取请求时,根据数据读取请求中需要查询的区块的地址和时间戳信息,从距离查询者较近的运行节点或者其从属子备份节点中查询对应的区块数据,并返回给查询者。
在进行数据查询时,从距离查询者距离较近的运行节点查询数据,以及由于为运行节点配置了子备份节点,当运行节点忙碌时,可通过子备份节点查询数据,减轻了运行节点的压力,提高了数据查询的速度。
实施例4、一种区块链系统的架构方法。
参见图3,本实施例提供的区块链系统的架构方法包括:
S1,为区块链系统中运行组的部分运行节点或者全部运行节点中的每一个运行节点配置至少一个从属的子备份节点,每一个运行节点与其从属的至少一个子备份节点形成一个整体;
其中,当运行节点没有子备份节点时,该运行节点中存储有至少一条完整的区块链数据;当运行节点具有从属的子备份节点时,该运行节点以及其从属的每一个子备份节点,分别用于存储一条完整的区块链数据的一部分或全部,该运行节点与其从属的所有子备份节点所存储的区块链数据之和至少包括一条完整的区块链数据。
S2,为区块链系统配置备份组,所述备份组包括多个游离形式的备份节点,每一个游离形式的所述备份节点存储区块链系统认定为有效的若干个区块中的数据,多个备份节点所存储的区块数据之和至少包括一条完整的区块链数据。
当区块链系统中的运行节点产生新区块且为有效区块时,由多个游离形式的备份节点中的某个备份节点存储该区块,具体的由哪一个备份节点存储该区块可以根据设定的规则轮流进行存储。
本实施例与上述实施例3相比,还为区块链系统配置了备份组,其它的技术特征可参见上述实施例3中的技术特征,当区块链系统中的运行节点产生新区块且为有效区块时,由多个游离形式的备份节点中的某个备份节点存储该区块,具体的由哪一个备份节点存储该区块可以根据设定的规则轮流进行存储。
其中,为整个区块链系统配置多个游离形式的备份组,当运行节点崩溃或受到攻击时,可通过备份节点进行恢复,提高整个区块链系统的抗攻击能力。
本发明提供的一种区块链系统及区块链系统的架构方法,为区块链系统中的运行节点配置子备份节点,为运行节点分摊数据,减轻运行节点的压力,同时,通过为运行节点配置子备份节点,可以使整个区块链系统存储的数据量扩大,整个区块链中节点的规模越大,整个区块链系统的抗攻击能力越强;此外,为整个区块链系统配备了多个游离形式的子备份节点,当运行节点崩溃或受到攻击时,可通过备份节点进行恢复,提高整个区块链系统的抗攻击能力。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。