一种向区块链系统中写入业务数据的方法和装置与流程

文档序号:12963165阅读:266来源:国知局
一种向区块链系统中写入业务数据的方法和装置与流程
本申请涉及计算机
技术领域
,尤其涉及一种向区块链系统中写入业务数据的方法和装置。
背景技术
:随着计算机技术的发展,区块链技术(又称分布式账本技术)以其去中心化、公开透明、不可篡改、可信任等优点,备受青睐,在智能合约、证券交易、电子商务、物联网、社交通讯、文件存储、存在性证明、身份验证、股权众筹等众多领域得到广泛应用。在基于区块链技术实现业务系统时,业务系统(因采用区块链技术实现,又可称为区块链系统)需要将业务数据写入区块链。区块链系统接收到需写入区块链的业务数据(在区块链技术中也可称为交易)后,会按照时间顺序,采用先进先出的队列执行这些交易,完成交易验证、实施、数据入链等操作。在现有技术中,为了充分合理的利用区块链系统的计算资源,一个区块链系统可能接入多种不同类型的业务,并按照时间的先后顺序平等对待这些不同类型的业务数据。但是,在某些情况下,上述依据时间的先后顺序执行交易的方式无法满足应用需求。例如,对多种保密密级不同的信息进行处理时,区块链系统可能接收到针对不同密级的信息进行处理的交易,这时对不同密级的信息可能需要隔离,避免密级更高的信息的泄露,保障信息安全性。因此,当需要对某项业务进行特殊管控时,现有技术中写入区块链业务数据的方式将无法满足应用需求。因此,亟需一种在接入了多种业务类型的区块链系统中,能够满足不同类型业务数据的业务处理需求的业务数据写入方法。技术实现要素:本申请实施例提供一种向区块链系统中写入业务数据的方法和装置,从而能够满足区块链系统中不同类型的业务数据的处理需求。本申请实施例采用下述技术方案:本申请实施例提供一种向区块链系统中写入业务数据的方法,所述区块链系统包括至少一条区块链,所述方法包括:接收区块链业务数据写入请求,所述区块链业务数据写入请求中包括待入链业务数据的业务特征信息;依据区块链数据记录表和所述待入链业务数据的业务特征信息,确定与所述待入链业务数据相匹配的区块链;其中,所述区块链数据记录表中记录有区块链的业务类型标识信息,用于反映区块链中已入链业务数据的业务特征信息;将所述待入链业务数据的执行结果写入与所述待入链业务数据相匹配的区块链。优选地,本申请实施例提供的方法中,依据区块链数据记录表和所述待入链业务数据的业务特征信息,确定与所述待入链业务数据相匹配的区块链,包括:当在所述区块链数据记录表中查找到满足第一预设条件的第一业务类型标识信息时,将所述第一业务类型标识信息所对应的区块链确定为与所述待入链业务数据相匹配的区块链;其中,满足所述第一预设条件包括:第一业务类型标识信息与所述待入链业务数据的业务特征信息相匹配。优选地,本申请实施例提供的方法中,所述业务特征信息取为2的n次幂,其中,所述n为0或正整数;所述区块链的业务类型标识信息取为所述区块链中已入链业务数据的不同业务特征信息之和。优选地,本申请实施例提供的方法中,第一业务类型标识信息与所述待入链业务数据的业务特征信息相匹配,具体为:若所述第一业务类型标识信息的值与所述待入链业务数据的业务特征信息的值的逻辑与操作等于所述待入链业务数据的业务特征信息的值,则所述第一业务类型标识信息与所述待入链业务数据的业务特征信息相匹配。优选地,本申请实施例提供的方法中,依据区块链数据记录表和所述待入链业务数据的业务特征信息,确定与所述待入链业务数据相匹配的区块链,还包括:当在所述区块链数据记录表中未查找到满足所述第一预设条件的第一业务类型标识信息时,将预设的第二业务类型标识信息所对应的区块链确定为与所述待入链业务数据相匹配的区块链。优选地,本申请实施例提供的方法中,所述区块链数据记录表中还记录有区块链的状态信息,则,所述第一业务类型标识信息满足所述第一预设条件还包括:所述第一业务类型标识信息所对应的区块链的状态信息为有效状态。优选地,本申请实施例提供的方法中,所述区块链数据记录表中还记录有区块链的最后区块哈希值和对应的时间戳,则将所述待入链业务数据的执行结果写入与所述待入链业务数据相匹配的区块链,包括:提取与所述待入链业务数据相匹配的区块链所对应的最后区块哈希值和对应的时间戳;将所述待入链业务数据的执行结果、所述最后区块哈希值和对应的时间戳写入所述区块链中的新的区块中;将所述新的区块的哈希值和对应的时间戳作为新的最后区块哈希值和对应的时间戳更新到所述区块链数据记录表中。优选地,本申请实施例提供的方法中,所述区块链系统中包含一条作为主链的区块链,在接收区块链业务数据写入请求之后,所述方法还包括:当满足第二预设条件时,在所述区块链系统中增加新的区块链作为侧链,并在所述区块链数据记录表中增加与所述新的区块链及其业务类型标识信息相对应的记录。优选地,本申请实施例提供的方法中,满足所述第二预设条件包括:所述区块链业务数据写入请求中包含的待入链业务数据的业务特征信息与预设业务特征信息相匹配;和/或接收到的所述区块链业务数据写入请求的并发数量达到预设阈值;和/或预设的增加新的区块链作为侧链的时间到达。优选地,本申请实施例提供的方法中,所述区块链系统中包含一条作为主链的区块链和至少一条作为侧链的区块链,则在接收区块链业务数据写入请求之后,所述方法还包括:当满足第三预设条件时,在所述区块链系统中终止作为侧链的区块链,并在所述区块链数据记录表中更新与被终止的所述区块链相对应的记录。优选地,本申请实施例提供的方法中,满足所述第三预设条件包括:接收到的所述区块链业务数据写入请求的并发数量小于预设阈值;和/或侧链的有效时间到达。优选地,本申请实施例提供的方法中,在所述区块链数据记录表中更新与被终止的所述区块链相对应的记录,包括:删除与被终止的所述区块链相对应的记录;或者,当所述区块链数据记录表中记录有被终止的所述区块链的状态信息时,将被终止的所述区块链的状态信息修改为无效状态。本申请实施例还提供一种向区块链系统中写入业务数据的装置,所述区块链系统包括至少一条区块链,所述装置包括:请求接收模块,用于接收区块链业务数据写入请求,所述区块链业务数据写入请求中包括待入链业务数据的业务特征信息;入链区块链确定模块,用于依据区块链数据记录表和所述待入链业务数据的业务特征信息,确定与所述待入链业务数据相匹配的区块链;其中,所述区块链数据记录表中记录有区块链的业务类型标识信息,所述业务类型标识信息用于反映区块链中已入链业务数据的业务特征信息;入链模块,用于将所述待入链业务数据的执行结果写入与所述待入链业务数据相匹配的区块链。本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:在本申请实施例中,区块链系统在接收到包括有待入链业务数据的业务特征信息的区块链业务数据写入请求后,由于区块链数据记录表中记录有区块链的业务类型标识信息,且这些标识信息能够反映区块链中已入链业务数据的业务特征信息,因此,依据区块链数据记录表和待入链业务数据的业务特征信息,可以确定出与待入链业务数据相匹配的区块链,从而可将待入链业务数据的执行结果写入相匹配的区块链。采用本申请实施例的技术方案,可以根据待入链业务数据的业务特征信息选择相匹配的区块链完成入链,并建立区块链数据记录表能够对与业务类型相对应的各区块链进行记录,因此使得对不同类型业务数据的不同处理成为可能,从而能够满足区块链系统中不同类型的业务数据的处理需求。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1为本申请实施例提供的一种向区块链系统中写入业务数据的方法的流程示意图;图2为本申请实施例提供的第二种向区块链系统中写入业务数据的方法的流程示意图;图3为本申请中的区块链系统分出区块链侧链的示意图;图4为本申请中的区块链系统分出区块链侧链的另一示意图;图5为本申请中的区块链系统终止区块链侧链的示意图;图6为本申请实施例提供的一种向区块链系统中写入业务数据的装置的结构示意图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。以下结合附图,详细说明本申请各实施例提供的技术方案。本申请实施例提供了一种向区块链系统中写入业务数据的方法,上述区块链系统包括至少一条区块链。若区块链系统中仅包含一条区块链,该条区块链可理解为该区块链系统的主链,区块链系统所接入的各类业务数据的执行结果均默认地写入该条主链。在具体实施时,根据区块链系统的交易处理要求,按照接收到区块链业务数据写入请求的时间先后顺序执行待入链业务数据,并按照时间先后顺序写入上述主链中。若区块链系统中包含多条区块链,则其中一条作为该区块链系统的主链,而其余各条区块链作为该区块链系统的侧链。在本申请实施例所称的区块链系统中,有一条主链,在没有特殊配置的情况下,区块链系统所接入的各类业务数据的执行结果均默认地写入该条主链。而在需要时,区块链系统可以分出一条或多条侧链,各条侧链对应处理一种或多种不同的业务类型的业务数据,进而可以依据业务数据的业务特征信息,将某类或某些类有特殊处理要求的业务数据分配到侧链中处理,而不会影响到写入主链和写入其他侧链(如果存在)的其他业务类型的业务数据的处理,因此能够满足不同类型业务数据的业务处理需求。以下将详细说明举例本申请实施例的实施过程。参见图1所示,本申请实施例提供的向区块链系统中写入业务数据的方法,可具体包括:s101:接收区块链业务数据写入请求,区块链业务数据写入请求中包括待入链业务数据的业务特征信息;s102:依据区块链数据记录表和区块链业务数据请求中的业务特征信息,确定与待入链业务数据相匹配的区块链;其中,区块链数据记录表中记录有区块链的业务类型标识信息,业务类型标识信息用于反映区块链中已入链业务数据的业务特征信息;s103:将待入链业务数据的执行结果写入与待入链业务数据相匹配的区块链。上述区块链系统执行步骤s101接收到的区块链业务数据写入请求(在区块链技术体系中,又可称为交易,英文名称为transaction,可简写为tx),用于请求执行待入链业务数据,以便将待入链业务数据的执行结果写入区块链系统中的区块链。上述请求中包含有待入链业务数据的相关信息,例如待入链业务数据的业务特征信息等。待入链业务数据的业务特征信息用于反映待入链业务数据属于哪种类型的业务数据,以便区分不同业务类型的业务数据。在本申请实施例中,业务数据的类型可以按照多种不同的维度进行划分。例如,可以按照业务数据所涉及到的处理方式进行划分,分为合约类业务、转账类业务等等;也可以按照业务数据所涉及到的信息的保密程度进行划分,分为绝密、机密、秘密等等。在本申请实施例中,可以采用a、b、c、d这种字符形式表示业务数据的业务特征信息,只要能够对不同类型的业务数据进行区分即可。假设区块链系统中包括三条侧链,分别用于处理类型a和类型d的业务(可表示为【a,d】)、类型b和类型d的业务(可表示为【b,c】)、以及类型d的业务(可表示为【d】),则在确定与待入链业务数据相匹配的区块链时,可以遍历区块链数据记录表,将待入链业务数据的业务特征信息(此处可体现为a、b、c、d这种字符形式)与区块链数据记录表中记录的区块链的业务类型标识信息(此处可体现为【a,d】、【b,c】、【d】的形式)进行字符串的匹配,从而确定出待入链业务数据应写入的区块链,进而实现后续的入链操作。在本申请中的一个优选实施例在于,将业务特征信息表示为2的n次幂的形式,其中,参数n为0或正整数。采用这种形式表现业务数据的业务特征信息,好处在于:当一条侧链中同时接入多种不同业务类型的业务数据时,业务特征信息体现为2的n次幂形式,即2n(n≥0)的形式,能够更方便的进行该条侧链所对应的业务类型标识信息的计算以及后续的逻辑运算。后文中将进一步举例说明业务类型标识信息的计算过程和逻辑运算的过程。区块链业务数据写入请求中除包含待入链业务数据的业务特征信息外,还可以包含业务发起方(也可称为交易发起方)用私钥签名得到的信息,用于在区块链系统处理该请求对应的业务数据时结合公钥进行验证:若验证通过则表示该交易合法,允许接入当前的区块链系统,进行后续入链步骤,否则将拒绝执行该项交易。区块链系统在接收到区块链业务数据写入请求后,可将该请求对应的待入链业务数据(也可称为交易)保存到本地缓存(可以理解为区块链系统的交易池),以便进行后续处理。在缓存时,可以采用表1所示的交易模型表的表结构,将与待入链业务数据相关的信息进行记录。表1交易模型表结构示例在接收到区块链业务数据写入请求后,区块链系统执行步骤s102,依据区块链数据记录表和所述待入链业务数据的业务特征信息,确定与所述待入链业务数据相匹配的区块链。区块链数据记录表中记录的区块链的业务类型标识信息,对于区块链系统中的侧链而言,可以依据写入侧链的一种或多种业务数据的业务特征信息确定得到,因此,该侧链的业务类型标识信息可以反映该侧链中已入链业务数据的业务特征信息。对于区块链系统中的主链而言,其业务类型标识信息可以采用预设的标识符来表示,例如“*”等,只要能够与侧链的业务类型标识信息显著区分开,在后续与待入链业务数据的业务特征信息的值进行逻辑运算时不会混淆结论即可。以以上业务特征信息体现为2的n次幂形式,即2n(n≥0)形式为例。若一区块链侧链a中包含有两种类型的业务数据,那么依据这两种业务数据的业务特征信息即可确定这一区块链侧链a的业务类型标识信息。具体地,假设第一种业务数据的业务特征信息的值为20(此时n的值取为0),具体对应到卖家业务;第二种业务数据的业务特征信息的值为21(此时n的值取为1),具体对应到手机认证业务。则本例中的区块链侧链a的业务类型标识信息可以取为写入该侧链a的两种业务数据的业务特征信息的值的和,即20+21,可表示为十进制数,记为3。由于区块链数据记录表中呈现了区块链与写入该区块链的业务数据的业务类型(业务类型通过能够反映已入链业务数据的业务特征信息的业务类型标识信息体现)之间的对应关系,因此,执行步骤s102就能够依据待入链业务数据的业务特征信息(业务特征信息能够表征待入链业务数据的业务类型),在区块链数据记录表中查找确定出与待入链业务数据相匹配的区块链,进而能够执行步骤s103完成待入链业务数据的入链。具体地,在执行步骤s102时,可优选采用以下方法:当在区块链数据记录表中查找到满足第一预设条件的第一业务类型标识信息时,将第一业务类型标识信息所对应的区块链确定为与待入链业务数据相匹配的区块链;其中,第一业务类型标识信息满足第一预设条件包括:第一业务类型标识信息与待入链业务数据的业务特征信息相匹配。鉴于区块链数据记录表中已建立有区块链与业务类型标识信息的对应关系,能够反映区块链中接入了哪些类型的业务数据,因此,若待入链业务数据的业务特征信息与区块链数据记录表中记录的第一业务类型标识信息相匹配,则可据此为待入链业务数据确定出相匹配的区块链,即确定待入链业务数据这一类型的业务数据应写入哪一条区块链。进一步地,在判断上述第一预设条件是否达成,即判断第一业务类型标识信息与待入链业务数据的业务特征信息是否相匹配时,可以采用以下方式:若第一业务类型标识信息的值与待入链业务数据的业务特征信息的值的逻辑与操作等于待入链业务数据的业务特征信息的值,则第一业务类型标识信息与待入链业务数据的业务特征信息相匹配。具体操作时,可以将待入链业务数据的业务特征信息的值与区块链数据记录表中记录的各业务类型标识符逐个地进行逻辑与操作,直至找到使得逻辑与操作的值等于上述业务特征信息的值的第一业务类型标识信息。也可以计算逻辑表达式“业务特征信息的值&第一业务类型标识信息的值==业务特征信息的值”的结果是否为真,则使得该逻辑表达式的值为“真”的第一业务类型标识信息即可确定为与待入链业务数据的业务特征信息相匹配。延续以上示例,假设接收到的待入链业务数据是手机认证类业务,该待入链业务数据所对应的业务特征信息的值为21(此时n的值取为1)。将此时的业务特征信息的值21与区块链数据记录表中记录的业务类型标识信息的值进行逻辑与运算可知,当业务特征信息的值21与区块链侧链a的业务类型标识信息的值3(20+21)进行二进制与运算时的计算结果为2,等于业务特征信息的值21,则可将区块链侧链a的业务类型标识信息作为与待入链业务数据的业务特征信息相匹配的第一业务类型标识信息,从而可将区块链侧链a确定为与待入链业务数据相匹配的区块链,表示应将待入链业务数据写入区块链侧链a。在进行二进制与运算时,先将十进制形式表示的业务类型标识信息转化为二进制字符串,然后依据二进制与运算的计算原理进行运算:0&0=0,0&1=0,1&0=0,1&1=1,从而得到运算结果。例如上例中的运算过程可细化为:2&3→10&11=10→2=21在计算机中具体实现上述查找相匹配的第一业务类型标识信息的过程时,可以有多种方式。例如,可以采用语句sql的判断语句实现,从区块链数据记录表中选择使得“业务特征信息的值&业务类型标识信息的值==业务特征信息的值”的值为“真”的第一业务类型标识信息。也可以将区块链数据记录表的数据提取到内存中,通过程序的循环比较完成查找。在此基础上还能进一步对循环比较的过程进行优化,例如对区块链数据记录表中的业务类型标识信息进行划分,将满足“业务类型标识信息的值%2==0”这一条件,即业务类型标识信息的值是2的倍数的相关记录放入一个hash表(哈希表)中,将不是2的倍数的相关记录放到一个循环队列里面进行遍历,从而可以减少循环的次数,提高查找效率。在采用上述具体步骤实施步骤s102时,也可能出现在区块链数据记录表中无法查找到满足上述第一预设条件的第一业务类型标识信息的情况,此时可理解为,区块链系统中并未包含接入了待入链业务数据这类业务数据的侧链。此时,可以直接将预设的第二业务类型标识信息所对应的区块链确定为与待入链业务数据相匹配的区块链。在具体实现时,预设的第二业务类型标识信息可以取为主链所对应的标识符,例如表示为“*”,从而将与待入链业务数据相匹配的区块链确定为区块链系统中的主链,将未分配到侧链处理的待入链业务数据的执行结果写入上述主链。在本申请的实施例中,区块链数据记录表中除记录区块链对应的业务类型标识信息外,还可记录有区块链的状态信息,区块链的状态信息用于反映区块链是否有效,即对应的区块链是否能够接收新增的区块。对于区块链系统中的主链而言,主链的状态信息通常始终保持有效状态,否则可能导致区块链系统无法正常运行。对于区块链系统中的侧链而言,当允许向该侧链中接入该侧链所对应的业务类型(即该侧链的业务类型标识符所反映出来的业务类型)时,侧链的状态信息为有效状态;当不允许向该侧链中接入该侧链所对应的业务类型时,侧链的状态信息为无效状态。在依据区块链数据记录表确定与待入链业务数据相匹配的区块链的过程中,除考虑区块链的业务类型标识信息与待入链业务数据的业务特征信息的匹配性问题之外,还可考虑区块链自身的有效性问题。若区块链数据记录表中记录的区块链状态信息为无效状态,则不应将待入链业务数据写入到这样无效的区块链。因此,在确定上述第一业务类型标识信息时,还可要求第一业务类型标识信息所对应的区块链的状态信息为有效状态。在具体实施时,通常要求两个条件同时满足,即第一业务类型标识信息满足第一预设条件包括:第一业务类型标识信息与待入链业务数据的业务特征信息相匹配,并且,第一业务类型标识信息所对应的区块链的状态信息为有效状态。在判断流程的具体实现时,对两个条件进行判断的顺序可以互换,本申请实施例不做限定。也就是说,可以先判断区块数据记录表中记录的区块链的状态信息,进而只在状态信息为有效状态的区块链中寻找与待入链业务数据相匹配的区块链;也可以先在区块数据记录表中查找与待入链业务数据的业务特征信息相匹配的第一业务类型标识信息,再判断第一业务类型标识信息所对应的区块链的状态信息是否为有效状态,如有效则确定对应的区块链为与待入链业务数据相匹配的区块链。在本申请的实施例中,上述区块链数据记录表中还可以记录区块链的最后区块哈希值和对应的时间戳,例如采用下表2所示的表结构进行记录。表2区块链数据记录表表结构示例基于表2形式给出的区块链数据记录表,区块链系统在执行步骤s103将待入链业务数据的执行结果写入与待入链业务数据相匹配的区块链时,可具体包括以下步骤,参见图2:s1031:提取与待入链业务数据相匹配的区块链所对应的最后区块哈希值和对应的时间戳;s1032:将待入链业务数据的执行结果、最后区块哈希值和对应的时间戳写入区块链中的新的区块中;s1033:将新的区块的哈希值和对应的时间戳作为新的最后区块哈希值和对应的时间戳更新到区块链数据记录表中。在上述实施过程中,若同一类型的业务数据同时接入多条侧链,则在区块链数据记录表中可能会查找到多个满足第一预设条件的业务类型标识信息,则待入链业务数据可能会需要接入多条相匹配的区块链,并更新区块链数据记录表中对应这些区块链的最后区块哈希值和对应的时间戳。以下举例说明这种情况。假设区块链系统中接入了多种类型的业务数据,除以上示例中提及的业务特征信息的值为20的卖家业务、业务特征信息的值为21的手机认证业务外,还包括业务特征信息的值为22(此时n的值取为2)的手机注册业务等。需要说明的是,区块链系统所接入的所有业务类型的业务特征信息的值与其对应的实际业务间的对应关系,通常由区块链系统开发者预先设定,参见表3所示。当需要向区块链系统中接入新的类型时,可以增加新的对应关系,以满足系统扩展的需要。通常,设定业务特征信息时,按照n的自然数递增的方式为各种业务类型分配业务特征信息的值,参见表3所示。表3业务特征信息对应表示例业务类型说明业务特征信息卖家业务1(20)手机认证业务2(21)手机注册业务4(22)退款业务8(23)······2n(n>3)假设区块链系统将卖家业务和手机认证业务接入侧链一,将卖家业务和手机注册业务接入侧链二,则区块链数据记录表如表4所示:表4区块链数据记录表示例业务类型标识信息最后一个区块hash值状态信息时间戳*code*-112017/2/133code3-112017/2/155code5-112017/2/14······当待入链业务数据为卖家业务,其业务特征信息的值为1,则按照前述实施例的方式,业务类型标识信息为3和5的两条区块链都满足第一预设条件的要求,因此,该卖家业务将同时或先后入链到业务类型标识信息为3和5的两条区块链侧链中,并相应的更新这两条区块链的最后区块哈希值,例如哈希值code3-1更新为哈希值code3-2,哈希值code5-1更新为哈希值code5-2,区块哈希值所对应的时间戳也随着新的区块的生成相应的更新。在此例中,当待入链业务数据为退款业务,其业务特征信息的值为8(23)时,按照前述实施例的方式,将无法在区块链数据记录表中查找到满足第一预设条件的业务类型标识信息,表示区块链系统并未建立侧链处理该类业务。因此,将该待入链业务数据的执行结果写入主链(业务类型标识信息为“*”)中,并相应的更新主链的最后区块哈希值和对应的时间戳,例如,将code*-1更新为code*-2。以上详细说明了如何依据区块链数据记录表确定待入链业务数据所匹配的区块链,以完成入链的多种实施例。以下将着重说明在不同情况下对区块链系统中区块链的不同处理方式以及对区块链数据记录表的影响。区块链系统在接收到区块链业务数据写入请求之后,本申请实施例给出的方法还可包括:当满足第二预设条件时,在区块链系统中增加新的区块链作为侧链,并在区块链数据记录表中增加与新的区块链及其业务类型标识信息相对应的记录。参见图3和图4中所示,区块链系统可以在一定条件下分出区块链的侧链,用于处理业务特征信息的值为1和2的业务数据,该侧链的业务类型标识符为3。例如,当推出“用手机认证送积分”之类的促进用户进行手机认证的活动时,可以预见到手机认证业务的并发量将会很大,如果全部由区块链系统中的主链处理的话,可能会出现处理滞后的现象,或可能出现与其他类型业务的处理发生资源抢占的现象。在这种情况下,就可以分出一条侧链,将手机认证业务(业务特征信息的值为2)分入该侧链中执行,从而能够满足区块链系统中不同类型的业务数据的处理需求,尤其是某些类型的业务数据的特殊处理需求。具体地,第二预设条件可以是区块链业务数据写入请求中包含的待入链业务数据的业务特征信息与预设业务特征信息相匹配。此时,区块链系统可预先设定将某些业务类型入链到侧链,当新接收到的待入链业务数据属于这一类型时,其业务特征信息将与预设的业务特征信息相匹配,从而可在区块链系统中增加新的区块链作为侧链,并在如表4所示的区块链数据记录表中增加一行予以记录。除此之外,也可以在接收到的区块链业务数据写入请求的并发数量达到预设阈值时,和/或预设的增加新的区块链作为侧链的时间到达时,执行上述增加侧链的操作。除上述增加侧链的操作外,当满足第三预设条件,例如接收到的所述区块链业务数据写入请求的并发数量小于预设阈值和/或侧链的有效时间到达时,也可以在区块链系统中终止作为侧链的区块链,并在区块链数据记录表中更新与被终止的区块链相对应的记录。例如图5所示,区块链系统可以在一定条件下终止区块链的侧链,如图5中业务类型标识信息为3的侧链,该条侧链被终止后,业务特征信息为1和2的两类业务数据都将不再写入这条被终止的侧链,而是合并由主链处理。更具体地,在区块链数据记录表中更新与被终止的区块链相对应的记录时,可以采用多种手段进行,例如可以删除与被终止的区块链相对应的记录,也可以将被终止的区块链的状态信息修改为无效状态。以表4所示区块链数据记录表为例,假设希望使业务类型标识信息为5的区块链终止,将该区块链对应的状态信息的值置为“0”即可。除以上详细说明的向区块链系统中写入业务数据的方法之外,本申请实施例还相应的提供了一种向区块链系统中写入业务数据的装置,区块链系统包括至少一条区块链,参见图6,该装置包括:请求接收模块101,用于接收区块链业务数据写入请求,区块链业务数据写入请求中包括待入链业务数据的业务特征信息;入链区块链确定模块102,用于依据区块链数据记录表和待入链业务数据的业务特征信息,确定与待入链业务数据相匹配的区块链;其中,区块链数据记录表中记录有区块链的业务类型标识信息,业务类型标识信息用于反映区块链中已入链业务数据的业务特征信息;入链模块103,用于将待入链业务数据的执行结果写入与待入链业务数据相匹配的区块链。上述入链区块链确定模块102,也可称为数据路由模块,用于根据区块链数据记录表体现出的规则确定出待入链业务数据应路由到那条区块链上完成入链。本申请所称的区块链系统,可以理解为一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次网络交易的信息,用于验证其信息的有效性并生成下一个区块,区块的存储方式按链式首尾相连。基于链式存储的特性,本申请实施例可根据业务数据的业务类型对业务数据进行分叉、归集,从而调配不同的存储、计算资源、或是扩展额外的逻辑,以满足不同业务类型业务数据的不同处理需求。在本申请实施例中提供的方法和装置中,区块链系统在接收到包括有待入链业务数据的业务特征信息的区块链业务数据写入请求后,由于区块链数据记录表中记录有区块链的业务类型标识信息,且这些标识信息能够反映区块链中已入链业务数据的业务特征信息,因此,依据区块链数据记录表和待入链业务数据的业务特征信息,可以确定出与待入链业务数据相匹配的区块链,从而可将待入链业务数据的执行结果写入相匹配的区块链。采用本申请实施例的技术方案,可以根据待入链业务数据的业务特征信息选择相匹配的区块链完成入链,并建立区块链数据记录表能够对与业务类型相对应的各区块链进行记录,因此使得对不同类型业务数据的不同处理成为可能,从而能够满足区块链系统中不同类型的业务数据的处理需求。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1