首页 / 专利库 / 资料储存系统 / 分布式账本 / 区块链 / 区块头 / 区块链平行链的维护方法及区块链平行链

链平行链的维护方法及区块链平行链

阅读:442发布:2020-05-15

专利汇可以提供链平行链的维护方法及区块链平行链专利检索,专利查询,专利分析的服务。并且本 申请 提供一种 区 块 链 平行链的维护方法及区块链平行链,所述方法包括:确定接入链区块链中的待同步区块;生成符合公链规范形式的平行链区块,平行链区块包括待同步区块的区块数据;将平行链区块添加至平行链区块链中,以供公链读取待同步区块的区块数据。本申请中,平行链生成符合公链规范形式的平行链区块,并将接入链区块链中待同步区块的区块数据包含在平行链区块中。因为平行链 节点 本身就是公链节点,所以平行链是公链的子链。子链作为公链中的一部分,在节点和网络体系上与公链是一致的,所以子链中的区块链能够被公链直接 访问 。因此,在跨链交易时,公链可以按照读取子链区块数据的方式,从平行链中读取接入链的区块数据,实现跨链交易。,下面是链平行链的维护方法及区块链平行链专利的具体信息内容。

1.一种链平行链的维护方法,其特征在于,所述方法包括:
确定接入链区块链中的待同步区块;
生成符合公链规范形式的平行链区块,平行链区块包括所述待同步区块的区块数据;
将所述平行链区块添加至平行链区块链中,以供公链从所述平行链区块链中读取所述待同步区块的区块数据。
2.根据权利要求1所述的方法,其特征在于,所述生成符合公链规范形式的平行链区块,包括:
生成索引标识和接入链区块标识,索引标识用于指示待同步区块中的区块数据,接入链区块标识用于指示接入链区块链中的待同步区块;
生成符合公链规范形式的区块头,区块头包括所述索引标识、所述接入链区块标识和平行链区块标识,平行链区块标识用于指示平行链区块链中的平行链区块;
将所述待同步区块的区块数据复制到所述区块头之后的位置,生成所述平行链区块。
3.根据权利要求1所述的方法,其特征在于,所述生成符合公链规范形式的平行链区块,包括:
生成索引标识和接入链区块标识,索引标识用于指示待同步区块的区块数据,所述接入链区块标识用于指示接入链区块链中的待同步区块;
生成符合公链规范形式的区块头,区块头包括平行链区块标识,平行链区块标识用于指示平行链区块链中的平行链区块;
将接入链区块标识添加到所述区块头之后的位置;
按照所述区块数据的类型,将索引标识添加到所述接入链区块标识之后的位置,所述区块数据的类型包括交易信息、状态信息、收据信息和数据信息;
将所述区块数据转化为符合公链规范形式的数据,并添加至索引标识之后的位置,生成所述平行链区块。
4.根据权利要求2或3任一项所述的方法,其特征在于,所述生成符合公链规范形式的平行链区块之后,还包括:
向公链发送所述区块数据对应的摘要信息,以使得公链根据所述摘要信息,从平行链区块链中读取所述待同步区块的区块数据,摘要信息包括所述区块数据对应的接入链区块标识、平行链区块标识和索引标识。
5.根据权利要求2或3任一项所述的方法,其特征在于,所述确定接入链区块链中的待同步区块,包括:
确定接入链区块链中当前的区块数量为m;
确定接入链区块链中前m-n个区块为共识区块,所述n为预先设定的数值,所述共识区块为接入链区块链中已经得到接入链节点共识的区块,n为大于0的正整数;
根据所述平行链区块链中的接入链区块标识,确定所述共识区块中区块数据未被同步的区块为待同步区块。
6.根据权利要求1所述的方法,其特征在于,所述待同步区块的数量为k,k为大于或等于2的正整数;
所述生成符合公链规范形式的平行链区块,包括:
每隔预设时长,生成一个符合公链规范形式的平行链区块,所述预设时长为接入链生成区块所需时长的k倍的时长。
7.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
周期性地从平行链的节点中选取平行链维护者节点,平行链维护者节点用于生成平行链区块。
8.一种区块链平行链,所述平行链由公链和接入链的共有节点组成,其特征在于,所述平行链包括周期性地从所述平行链的节点中选取的平行链维护者节点;
所述平行链维护者节点,用于:确定接入链区块链中的待同步区块;生成符合公链规范形式的平行链区块,平行链区块包括所述待同步区块的区块数据;将所述平行链区块添加至平行链区块链中,以供公链从所述平行链区块链中读取所述待同步区块的区块数据。
9.根据权利要求8所述的区块链平行链,所述平行链维护者节点,具体用于:
生成索引标识和接入链区块标识,索引标识用于指示待同步区块中的区块数据,接入链区块标识用于指示接入链区块链中的待同步区块;
生成符合公链规范形式的区块头,区块头包括所述索引标识、所述接入链区块标识和平行链区块标识,平行链区块标识用于指示平行链区块链中的平行链区块;
将所述待同步区块的区块数据复制到所述区块头之后的位置,生成所述平行链区块。
10.根据权利要求8所述的区块链平行链,所述平行链维护者节点,具体用于:
生成索引标识和接入链区块标识,索引标识用于指示待同步区块的区块数据,所述接入链区块标识用于指示接入链区块链中的待同步区块;
生成符合公链规范形式的区块头,区块头包括平行链区块标识,平行链区块标识用于指示平行链区块链中的平行链区块;
将接入链区块标识添加到所述区块头之后的位置;
按照所述区块数据的类型,将索引标识添加到所述接入链区块标识之后的位置,所述区块数据的类型包括交易信息、状态信息、收据信息和数据信息;
将所述区块数据转化为符合公链规范形式的数据,并添加至索引标识之后的位置,生成所述平行链区块。

说明书全文

链平行链的维护方法及区块链平行链

[0001] 本申请要求在2018年8月28日提交中国专利局、申请号为201810986825.3、发明名称为“区块链标准应用模型及其应用方法”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。

技术领域

[0002] 本申请涉及区块链技术领域,特别涉及一种区块链平行链的维护方法及区块链平行链。

背景技术

[0003] 区块链提供了一种去除中心化的系统思想,这种思想最根本的原理是通过公众共识的方式,创建一个相对客观的抗抵赖数字环境。区块链技术可以使网络信息一旦发布即不可改变,例如,区块链网络中发生一笔交易,区块链网络中的节点会在生成的区块中记录该交易,再将该区块添加至区块链中,并全网广播,形成不可更改的区块链。因此,区块链本质上是一个分布式的公共账本,这个公共账本由多个数据区块组成,并由各个节点共同维护。维护同一区块链的节点组成一个物理链,例如公链、私链、联盟链等等,这些节点共同组成了承载区块链的点对点网络。
[0004] 区块链交易一般发生在同一个区块链网络范围内的两个节点之间。但随着区块链技术的应用,有时交易需要跨越两个或两个以上的区块链网络,形成跨链交易。为了实现跨链交易,不同的区块链网络可以通过接入同一个公链,来实现彼此之间的跨链交易。例如,区块链网络N1和区块链网络N2都接入了公链N3。区块链网络N1中的节点A,向区块链网络N2中的节点B发起的交易时,公链N3居中调控,负责两个区块链网络之间信息的传递,完成跨链交易。但是无论是不同接入链之间的跨链交易,还是公链与接入链之间的跨链交易,公链都需要获取接入链区块链中记录有具体交易的区块数据,才能实现跨链交易。
[0005] 其中,在通过平行链接入公链的接入方式中,平行链作为接入链和公链的共有节点组成的区块链网络,同时存储有接入链的区块链和公链的区块链。但不同区块链网络之间存在的差异,例如共识机制的不同、通信机制不同等等,导致公链无法获取接入链区块链中的区块数据。因此,不同区块链网络之间的跨链交易无法实现。

发明内容

[0006] 本申请提供一种区块链平行链的维护方法及区块链平行链,可用于解决在现有技术中公链无法获取接入链区块链中的区块数据,导致不同区块链网络之间的跨链交易无法实现的问题。
[0007] 第一方面,本申请提供一种区块链平行链的维护方法,所述方法包括:
[0008] 确定接入链区块链中的待同步区块;
[0009] 生成符合公链规范形式的平行链区块,平行链区块包括所述待同步区块的区块数据;
[0010] 将所述平行链区块添加至平行链区块链中,以供公链从所述平行链区块链中读取所述待同步区块的区块数据。
[0011] 可选地,所述生成符合公链规范形式的平行链区块,包括:
[0012] 生成索引标识和接入链区块标识,索引标识用于指示待同步区块中的区块数据,接入链区块标识用于指示接入链区块链中的待同步区块;
[0013] 生成符合公链规范形式的区块头,区块头包括所述索引标识、所述接入链区块标识和平行链区块标识,平行链区块标识用于指示平行链区块链中的平行链区块;
[0014] 将所述待同步区块的区块数据复制到所述区块头之后的位置,生成所述平行链区块。
[0015] 可选地,所述生成符合公链规范形式的平行链区块,包括:
[0016] 生成索引标识和接入链区块标识,索引标识用于指示待同步区块的区块数据,所述接入链区块标识用于指示接入链区块链中的待同步区块;
[0017] 生成符合公链规范形式的区块头,区块头包括平行链区块标识,平行链区块标识用于指示平行链区块链中的平行链区块;
[0018] 将接入链区块标识添加到所述区块头之后的位置;
[0019] 按照所述区块数据的类型,将索引标识添加到所述接入链区块标识之后的位置,所述区块数据的类型包括交易信息、状态信息、收据信息和数据信息;
[0020] 将所述区块数据转化为符合公链规范形式的数据,并添加至索引标识之后的位置,生成所述平行链区块。
[0021] 可选地,所述生成符合公链规范形式的平行链区块之后,还包括:
[0022] 向公链发送所述区块数据对应的摘要信息,以使得公链根据所述摘要信息,从平行链区块链中读取所述待同步区块的区块数据,摘要信息包括所述区块数据对应的接入链区块标识、平行链区块标识和索引标识。
[0023] 可选地,所述确定接入链区块链中的待同步区块,包括:
[0024] 确定接入链区块链中当前的区块数量为m;
[0025] 确定接入链区块链中前m-n个区块为共识区块,所述n为预先设定的数值,所述共识区块为接入链区块链中已经得到接入链节点共识的区块,n为大于0的正整数;
[0026] 根据所述平行链区块链中的接入链区块标识,确定所述共识区块中区块数据未被同步的区块为待同步区块。
[0027] 可选地,所述待同步区块的数量为k,k为大于或等于2的正整数;
[0028] 所述生成符合公链规范形式的平行链区块,包括:
[0029] 每隔预设时长,生成一个符合公链规范形式的平行链区块,所述预设时长为接入链生成区块所需时长的k倍的时长。
[0030] 可选地,所述方法还包括:
[0031] 周期性地从平行链的节点中选取平行链维护者节点,平行链维护者节点用于生成平行链区块。
[0032] 第二方面,本申请提供一种区块链平行链,所述平行链由公链和接入链的共有节点组成,所述平行链包括周期性地从所述平行链的节点中选取的平行链维护者节点;
[0033] 所述平行链维护者节点,用于:确定接入链区块链中的待同步区块;生成符合公链规范形式的平行链区块,平行链区块包括所述待同步区块的区块数据;将所述平行链区块添加至平行链区块链中,以供公链从所述平行链区块链中读取所述待同步区块的区块数据。
[0034] 在本申请中,平行链中的维护者节点生成符合公链规范形式的平行链区块,并将接入链区块链中待同步区块的区块数据包含在平行链区块中。因为平行链节点本身就是公链节点,所以平行链是公链的子链。子链作为公链中的一部分,在节点和网络体系上与公链是一致的,所以子链中的区块链能够被公链直接访问。因此,在进行与接入链相关的跨链交易时,公链可以按照读取子链区块数据的方式,从平行链区块中读取接入链的区块数据,从而能够实现跨链交易。附图说明
[0035] 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0036] 图1是根据一示例性实施例示出的一种公链、平行链以及接入链之间网络架构的示意图;
[0037] 图2是根据一示例性实施例示出的一种区块链平行链的维护方法的流程示意图;
[0038] 图3是根据一示例性实施例示出的生成平行链区块的示意图;
[0039] 图4是根据另一示例性实施例示出的生成平行链区块的示意图;
[0040] 图5是根据一示例性实施例示出的获取接入链区块链中的待同步区块的方法流程图

具体实施方式

[0041] 下面将详细地对实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中描述的实施方式并不代表与本申请相一致的所有实施方式。它们仅是与权利要求书中所详述的、本申请的一些方面相一致方法的示例。
[0042] 在本申请提供的技术方案中,区块链网络是指维护区块链的节点所形成的点对点的网络。该区块链网络能够对所维护的区块链进行分布式存储、公共共识、数字加密、交易记账以及验证等操作。一个区块包括多个区块数据,而多个区块形成一条区块链。区块链或区块链区块中的区块数据是在区块链网络中发生交易时,维护该区块链的节点根据交易本身以及产生的结果所记录的数据。其中,区块又称为数据区块,例如平行链数据区块、公链数据区块等等。区块数据包括多种类型,用于指示交易具体的内容、结果和状态等等,如交易信息、状态信息、收据信息和数据信息。交易信息用于指示交易的具体内容。例如用户甲向用户乙转账了300人民币,则区块链的节点会生成一条交易信息。该交易信息记录了甲向乙转账300人民币这一交易内容。状态信息用于指示交易的状态。例如用户甲向用户乙转账300人民币。在甲向乙转账300人民币的过程中,为了表示转账正在进行,区块链的节点生成一条状态信息,用于记录该转账交易正在进行中。收据信息用于指示交易的结果。例如用户甲向用户乙转账了300人民币,则用户甲的账户减少了300人民币。相应地,区块链的节点会生成一条收据信息,用于记录用户甲的账户转出300人民币后的账户余额。数据信息用于指示区块链网络所存储的数据。区块链网络具备分布式存储的功能。维护区块链的节点能够对用户所要存储的数据进行分布式存储。存储数据时,区块链的节点会生成数据信息,用于记录存储的数据。需要说明的是,上述对交易信息、状态信息、收据信息和数据信息的解释仅是对区块数据类型的示例性和解释性说明,并不用于限定本申请。除上述四种类型外,区块数据还包括其它类型的信息。本申请对此不一一列举。
[0043] 区块链网络中的各个节点可以是物理节点,如终端、服务器,也可以是虚拟节点。同一区块链网络中的节点基于同一共识机制,共同沟通维护区块链网络的运行。
[0044] 在本申请中所提及的公链、接入链和平行链,均是指符合区块链技术的不同区块链网络。本申请提供的技术方案中,公链作为基础网络平台,由多个公链节点组成,可以接受多个区块链网络的接入。接入公链的区块链网络称为接入链,如现有的区块链网络比特币、以太坊等,或者,某些行业开发的行业链和联盟链,甚至是为了达到某种服务需求而搭建的私有链。这些现有区块链、行业链、联盟链以及私有链,一般不能直接与公链连接。因此,本申请中可通过平行链来连接公链与接入链。
[0045] 在本申请中,平行链由公链和接入链的共有节点组成。因为平行链的节点是公链和接入链的共有节点,所以平行链同时具有公链和接入链的功能,并存储有双方的区块链。示例性地,如图1所示,其示出了公链、接入链以及平行链之间的网络架构的示意图。平行链节点101作为公链11和接入链12的共有节点,既能够与公链节点111连接通信,又能够与接入链节点121连接通信。
[0046] 在本申请中,公链所涉及的跨链交易可以包括:接入链与公链之间发生的交易,例如查询交易、接入交易和同步交易等。对于这种跨链交易,因为公链直接与接入链进行交易,所以公链需要获取接入链区块链中的区块数据。公链所涉及的跨链交易还可以包括由公链负责中继或转发的交易。在这种跨链交易中,一个接入链作为交易的发起方,另一个接入链作为交易的目标方。示例性地,接入链A要支付自身的证通a,来兑换另一个接入链B的证通b。对于该跨链交易,接入链A不能直接与接入链B之间进行交易,需要通过公链C传递与交易相关的信息和数据。为了保证跨链交易能够顺利完成,公链C需要确定接入链A和接入链B能否完成各自在跨链交易中需要完成的交易内容,如接入链A能否支付交易所需的证通a。因此,公链需要获取交易双方的区块链中的区块数据。由此可知,无论是不同接入链之间的跨链交易,还是公链与接入链之间的跨链交易,公链都需要获取接入链区块链中记录的区块数据,才能完成跨链交易。
[0047] 由以上内容可知,为了完成跨链交易,公链需要获取跨链交易中接入链区块链中记录的区块数据。但是,公链和接入链是两种不同的区块链网络,由于两者之间存在不同共识机制、不同通信机制等等差异,即使平行链存储有两者的区块链,公链也无法直接从平行链中获取接入链区块链中的区块数据。因此,本申请提供一种区块链平行链的维护方法,通过对平行链的维护,使得公链能够从平行链中获取接入链区块链中的区块数据。
[0048] 参见图2,其示例性地示出了本申请一种区块链平行链的维护方法的流程示意图。该方法包括以下步骤。
[0049] 步骤S20,确定接入链区块链中的待同步区块。
[0050] 在本申请中,是通过对平行链的维护,即对平行链区块链的维护,使得公链能够从平行链区块链中获取接入链区块链中的区块数据。因此,平行链需要先确定负责维护平行链的平行链维护者节点。平行链维护者节点用于维护平行链相关的事务,例如生成区块、记录跨链交易等等。在本申请实施例中,有两种方式在平行链的节点中确定平行链维护者节点。
[0051] 在一种可能的实施方式中,平行链的节点均为平行链维护者节点。平行链将所有节点都设置为平行链维护者节点,能够确保平行链的节点都能够参与到平行链的维护中,使得每一个平行链的节点都有获取收益的权利。
[0052] 在另一种可能的实施方式中,周期性地从平行链的节点中选取平行链维护者节点。选取出的平行链维护者节点在下一周期中维护平行链。当前周期的平行链维护者节点选取下一周期的平行链维护者节点,并且当前周期的平行链维护者节点不再担任下一周期的平行链维护者节点。因此,充当维护者的节点处于动态变化中,并不是由固定的节点充当平行链维护者节点,降低了平行链被攻破的可能性,能够提高平行链的安全性。此外,选取平行链中的部分节点为平行维护者节点,避免了平行链维护的全网操作,因此能够提高平行链运行的效率。上述周期的时长大于选取平行链维护者节点所需的时长,以及小于攻破平行链维护者节点所需的时长。通过对周期时长的限制,即确保在周期内能够完成选取,又降低了平行链维护者节点被攻破的可能性。对于选取的方式,当前周期的平行链维护者节点可以随机选取,也可以根据各平行链节点的运算效率进行选取,还可以根据各平行链节点的安全性能进行选取,等等。对于选取的方式,本申请实施例不做具体限定。
[0053] 在选取出平行链维护者节点后,由当前周期的平行链维护者节点确定接入链区块链中的待同步区块。为了让公链能够从平行链区块链中获取接入链区块链中的区块数据,平行链需要将接入链区块链中的区块数据同步至自身的平行链区块中,即在平行链维护者节点生成的平行链区块中添加接入链的区块数据。待同步区块是指区块数据尚未同步至平行链区块的接入链区块。
[0054] 由于平行链存储有接入链区块链,而且平行链节点本身也是接入链节点,因此平行链维护者节点可以直接获取接入链区块链中的区块和区块数据。在确定待同步区块时,平行链维护者节点从接入链区块链的区块数据中,确定尚未同步到平行链区块链的区块数据,进而将这些区块数据所属的接入链区块作为待同步区块。
[0055] 步骤S21,生成符合公链规范形式的平行链区块。
[0056] 平行链维护者节点生成符合公链规范形式的平行链区块。在生成平行链区块时,平行链维护者节点将待同步区块中的区块数据添加在所生成的平行链区块中。对于生成平行链区块,本申请实施例提供两种方式。
[0057] 第一种,直接将待同步区块中的区块数据作为平行链区块中的部分内容。具体地,平行链维护者节点首先生成索引标识和接入链区块标识。索引标识用于指示待同步区块中的区块数据。待同步区块中可以包括多个区块数据。对于待同步区块中的各个区块数据,平行链维护者节点都会生成一个索引标识。一个区块数据的索引标识指示了该区块数据。公链或平行链可以根据该索引标识确定对应的区块数据。例如,一个区块数据是一笔交易的交易信息,平行链维护者节点对该交易信息进行哈希运算,得到与该交易信息对应的哈希值。该哈希值即为索引标识。接入链区块标识用于指示接入链区块链中的待同步区块。平行链维护者节点每次生成平行链区块时,可以同步多个待同步区块。对于每一个待同步区块,平行链维护者节点都生成一个对应的接入链区块标识。例如,接入链区块标识可以是待同步区块在接入链区块链中的区块序号,或者,是区块序号和区块哈希值的结合。
[0058] 然后,平行链维护者节点生成符合公链规范形式的区块头。该区块头是平行链维护者节点所要生成的平行链区块的区块头。该区块头中包括待同步区块中各个区块数据的索引标识、各个待同步区块对应的接入链区块标识和平行链区块标识。与接入链区块标识相似,平行链区块标识可以是平行链区块的区块序号,或者,是区块序号和区块哈希值的结合。在生成区块头后,平行链维护者节点将待同步区块中的区块数据直接复制到区块头之后的位置,生成平行链区块。
[0059] 示例性地,如图3所示,待同步区块为接入链区块链A中的第500个和第501个区块:区块30和区块31。两个待同步区块中各自包括了2个区块数据:T1、T2,以及T3、T4。平行链维护者节点生成平行链区块链B中的第250个区块:区块32。在生成区块32时,平行链维护者节点需要将区块30和区块31的区块数据同步到区块32中。在区块32中,区块头321中包括4个区块数据各自的索引标识。4个索引标识为4个哈希值,分别为:T1-hash、T2-hash、T3-hash和T4-hash。区块头321中还包括区块30对应的接入链区块标识和区块31对应的接入链区块标识。在本示例中,接入链区块标识为区块序号和区块哈希值的结合。因此,两个区块对应的接入链区块标识为:“500+A-Block500-hash”,以及“501+A-Block501-hash”。区块头321中还包括区块32对应的接入链区块标识:“250+B-Block250-hash”。在生成区块头321后,平行链维护者节点直接将区块30和区块31中的区块数据复制到区块头321之后的位置,最终生成平行链区块32。
[0060] 第二种,平行链维护者节点对待同步区块进行解构重组,生成公链可以直接读取数据的区块。具体地,平行链维护者节点同样地先生成索引标识和接入链区块标识。但是,在生成的区块头时,平行链维护者节点只添加平行链区块标识,而将接入链区块标识添加至区块头之后的位置。此外,对于索引标识,平行链维护者节点按照各个区块数据的类型,将对应的索引标识添加到接入链区块标识之后的位置。例如,在接入链区块标识之后的位置,平行链维护者节点先添加各个交易信息的索引标识;其次,添加各个状态信息的索引标识;再次,添加各个收据信息的索引标识;最终,添加各个数据信息的索引标识。平行链维护者节点在添加完索引标识后,将区块数据转化为符合公链规范形式的数据,并添加到索引标识之后的位置,生成平行链区块。
[0061] 示例性地,如图4所示,待同步区块为接入链区块链A中的第500个和第501个区块:区块40和区块41。每个待同步区块中各自包括了4种类型的区块数据,分别是:交易信息E1和E2、状态信息F1和F2、收据信息G1和G2、以及数据信息H1和H2。平行链维护者节点生成平行链区块链B中的第250个区块:区块42。在生成区块42时,平行链维护者节点需要将区块40和区块41的区块数据同步到区块42中。在区块42中依次包括:区块头421、接入链区块标识
422:“500+A-Block500-hash”和“501+A-Block501-hash”、交易信息E1和E2的索引标识423:
E1-hash和E2-hash,状态信息F1和F2的索引标识424:F1-hash和F2-hash,收据信息G1和G2的索引标识425:G1-hash和G2-hash,数据信息H1和H2的索引标识426:H1-hash和H2-hash,以及转化为符合公链规范形式的8个区块数据:交易信息e1和e2、状态信息f1和f2、收据信息g1和g2、以及数据信息h1和h2。区块头421中包括区块42对应的平行链区块标识:“250+B-Block250-hash”。
[0062] 通过上述两种方式,可以将待同步区块中的区块数据同步至公链能够访问的平行链区块链中。无论是第一种方式还是第二种方式,公链读取区块数据时,都是通过平行链区块标识确定区块数据所在的平行链区块,再通过接入链区块标识验证区块数据在接入链中所属的接入链区块,最终通过索引标识确定并读取区块数据。但是,对于第一种方式生成的平行链区块,在读取时,由于区块数据是直接从接入链区块中复制来的,因此公链需要按照接入链的数据读取规则读取区块数据。对于第二种方式生成的平行链区块,在读取时,由于区块数据已经转化为符合公链规范形式的数据,因此公链可以直接读取区块数据。
[0063] 对于第一种方式,平行链维护者节点能够较快地生成平行链区块,效率较高。但是,公链读取区块数据的速度较慢,降低了跨链交易的效率。对于第二种方式,平行链维护者节点生成平行链区块的效率较低。但是,公链读取区块数据的速度较块,能够提高跨链交易的效率。
[0064] 需要说明的是,除了与待同步区块相关的各种标识和区块数据外,平行链区块还可以包括与平行链自身相关的信息和数据。例如,与跨链交易相关的交易信息、部署在平行链上的智能合约等等。
[0065] 在一种可能的实施方式中,平行链维护者节点一次只生成一个平行链区块。一个平行链区块中可以同步k个待同步区块。k为大于或等于2的正整数。因此,每次生成平行链区块时,平行链维护者节点最多同步2个待同步区块。若k的取值大于2,则每次生成平行链区块时,平行链维护者节点需要同步的区块数据过多,导致生成平行链区块的效率降低。而且,当一个平行链区块包括过多接入链区块的区块数据时,公链在读取某一区块数据时,需要耗费过多的时间在该平行链区块中查找,会影响跨链交易的效率。具体地,平行链维护者节点可以每隔预设时长,生成一个符合公链规范形式的平行链区块。预设时长为接入链生成区块所需时长的k倍。例如,接入链生成区块所需时长为10分钟。那么,若设置平行链区块中包括3个待同步区块的区块数据,则平行链维护者节点每隔30分钟生成一个平行链区块。平行链维护者节点可以通过控制平行链区块的生成频率,来控制每次同步的区块数量。
[0066] 步骤S22,将平行链区块添加至平行链区块链中。
[0067] 生成平行链区块后,平行链维护者节点将该平行链区块添加至平行链区块链,并在平行链中进行同步,以取得其它平行链节点的共识。
[0068] 在进行跨链交易时,公链需要获取接入链的一个或多个区块数据。对于任一区块数据,公链都需要根据一组摘要信息读取该区块数据。一组摘要信息中包括用于确定区块数据所在的平行链区块的平行链区块标识、用于验证区块数据所属的接入链区块的接入链区块标识,以及该区块数据的索引标识。因此,在读取一个区块数据前,公链需要先获取区块数据对应的一组摘要信息。对此,由于公链可以直接访问平行链区块链,因此公链可以周期性地去获取平行链区块链中存储的各个区块数据对应的摘要信息。在另一些实施例中,平行链维护者节点生成一个平行链区块后,将该平行链区块中的各个数据对应的摘要信息发送给公链。
[0069] 进一步地,如图5所示,上述步骤S20,平行链维护者节点确定接入链区块链中的待同步区块,包括如下子步骤:
[0070] S201,确定接入链区块链中当前的区块数量为m。
[0071] S202,确定接入链区块链中前m-n个区块为共识区块。
[0072] S203,根据平行链区块链中的接入链区块标识,确定共识区块中区块数据未被同步的区块为待同步区块。
[0073] 首先,平行链维护者节点作为接入链中的节点,确定接入链区块链中当前的区块数量为m。例如,接入链正在生成自身区块链中的第10005个区块,则确定m的值为10005。
[0074] 由于区块链网络中拥有记账权利的维护者节点通常不止一个,因此对于同一位个数上的区块,可能不同的维护者节点会生成不同的区块。那么,因为同一位个数上的区块不同,所以同一区块链网络中会出现不同的区块链。此时,区块链网络利用自身的共识机制,让所有的节点取得共识,只认同上述不同区块链中的一个,保证所维护的区块链的唯一性。共识区块就是指接入链区块链中已经得到所有接入链节点共识的区块。一旦区块取得所有的节点的共识,那么,该区块就不会被重写或改变。
[0075] 平行链维护者节点需要保证同步的区块数据是准确地、不会改变地,因此,同步的区块数据是共识区块的区块数据。由于接入链区块链中的区块在不断增加,并且区块链在节点中取得共识需要一定的时间。因此,平行链维护者节点获取到的接入链区块链中,可能包括尚未取得节点共识的区块。但是,平行链维护者节点可以确定接入链区块链中前m-n个区块为共识区块。n为根据实际经验预先设定的数值,且为大于0的正整数。对于不同的接入链,由于节点数量不同、生成区块的时长不同、以及共识机制不同,n的具体数值也不同。例如,在以太坊的区块链中,n的值为10;在比特币的区块链中,n的值为6。
[0076] 示例性地,n的值为6。维护者节点确定接入链区块链中当前的区块数量为10005,则能够确定接入链区块链中的前9999个区块为共识区块。
[0077] 在确定接入链中的共识区块后,平行链维护者节点根据平行链区块链中各个区块所包括的接入链区块标识,确定区块数据尚未被同步的共识区块。例如,接入链区块链中的前9999个区块为共识区块。平行链已经同步了前9997个接入链区块。那么,各个平行链区块中包括指示该前9997个接入链区块的接入链区块标识。平行链维护者节点可以确定第9998个和第9999个接入链区块没有对应的接入链区块标识,则平行链维护者节点将这两个区块作为待同步区块。
[0078] 在本申请中,平行链中的维护者节点生成符合公链规范形式的平行链区块,并将接入链区块链中待同步区块的区块数据包含在平行链区块中。因为平行链节点本身就是公链节点,所以平行链是公链的子链。子链作为公链中的一部分,在节点和网络体系上与公链是一致的,所以子链中的区块链能够被公链直接访问。因此,在进行与接入链相关的跨链交易时,公链可以按照读取子链区块数据的方式,从平行链区块中读取接入链的区块数据,从而能够实现跨链交易。
[0079] 本申请还提供一种区块链平行链,该平行链由公链和接入链的共有节点组成,并包括周期性地从平行链的节点中选取的平行链维护者节点。该平行链可以用于实现上述方法示例
[0080] 上述平行链维护者节点,用于:确定接入链区块链中的待同步区块;生成符合公链规范形式的平行链区块,平行链区块包括待同步区块中的区块数据;将平行链区块添加至平行链区块链中,以供公链从平行链区块链中读取待同步区块的区块数据。
[0081] 在一种可能的实施方式中,平行链维护者节点,具体用于:
[0082] 生成索引标识和接入链区块标识,索引标识用于指示待同步区块中的区块数据,接入链区块标识用于指示接入链区块链中的待同步区块;生成符合公链规范形式的区块头,区块头包括索引标识、接入链区块标识和平行链区块标识,平行链区块标识用于指示平行链区块链中的平行链区块;将待同步区块的区块数据复制到区块头之后的位置,生成平行链区块。
[0083] 在另一种可能的实施方式中,平行链维护者节点,具体用于:生成索引标识和接入链区块标识,索引标识用于指示待同步区块中的区块数据,接入链区块标识用于指示接入链区块链中的待同步区块;生成符合公链规范形式的区块头,区块头包括平行链区块标识,平行链区块标识用于指示平行链区块链中的平行链区块;将接入链区块标识添加到区块头之后的位置;按照区块数据的类型,将索引标识添加到接入链区块标识之后的位置,区块数据的类型包括交易信息、状态信息、收据信息和数据信息;将区块数据转化为符合公链规范形式的数据,并添加至索引标识之后的位置,生成平行链区块。
[0084] 在本申请提供的区块链平行链中,平行链中的维护者节点生成符合公链规范形式的平行链区块,并将接入链区块链中待同步区块的区块数据包含在平行链区块中。因为平行链节点本身就是公链节点,所以平行链是公链的子链。子链作为公链中的一部分,在节点和网络体系上与公链是一致的,所以子链中的区块链能够被公链直接访问。因此,在进行与接入链相关的跨链交易时,公链可以按照读取子链区块数据的方式,从平行链区块中读取接入链的区块数据,从而能够实现跨链交易。
[0085] 本领域的技术人员可以清楚地了解到本申请实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
[0086] 本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求指出。
[0087] 应当理解的是,本申请并不局限于上面已经描述并在附图中示出的内容,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
[0088] 此外,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈