一种区块链网络的实现方法、装置、设备及存储介质转让专利

申请号 : CN201810791973.X

文献号 : CN108959621B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 肖伟

申请人 : 百度在线网络技术(北京)有限公司

摘要 :

本发明实施例公开了一种区块链网络的实现方法、装置、设备及存储介质,所述方法包括:获取网络节点发送的基础链事务请求,其中,所述网络节点同时参与基础链网络和平行链网络,所述基础链事务请求中包括平行链的数据;对所述基础链事务请求进行处理,并将基础链事务数据存储到基础链的区块中。本发明实施例的技术方案使区块链网络能够与更多及更复杂应用场景的需求相匹配。

权利要求 :

1.一种区块链网络的实现方法,其特征在于,由基础链网络节点来执行,所述方法包括:获取网络节点发送的基础链事务请求,其中,所述网络节点同时参与基础链网络和平行链网络,并同时存储基础链和平行链的区块本身;所述基础链事务请求中包括平行链的数据;所述平行链网络的平行链网络节点中的平行链部署数据包括:所述平行链网络节点中部署的平行链的共识机制、智能合约模板、哈希算法、加密算法以及激励机制;参与平行链的部分节点与参与基础链的部分节点是相同的网络节点;

对所述基础链事务请求进行处理,并将基础链事务数据存储到基础链的区块中。

2.根据权利要求1所述的方法,其特征在于,对所述基础链事务请求进行处理,并将基础链事务数据存储到基础链的区块中的同时,或之后,还包括:执行所述基础链事务请求中的账号智能合约,对平行链网络节点的关联账号数据进行更改。

3.根据权利要求2所述的方法,其特征在于,执行所述基础链事务请求中的账号智能合约,对平行链网络节点的关联账号数据进行更改包括:执行所述基础链事务请求中的账号智能合约,在本地存储的平行链中获取平行链网络节点的关联账号;

产生基础链元素转移合约,所述基础链元素转移合约用于从所述账号智能合约中指定输出账号中,按照设定分配规则向所述关联账号进行基础链元素转移;

将所述基础链元素转移合约在基础链的网络节点中传输,以请求基础链网络节点根据本地存储的平行链,对所述基础链元素转移合约中的事务进行验证。

4.根据权利要求3所述的方法,其特征在于,获取网络节点发送的基础链事务请求包括:获取平行链创建节点发起的基础链事务请求,其中,所述基础链事务请求中包括所创建的平行链的部署数据、所述指定输出账号以及所述设定分配规则。

5.根据权利要求4所述的方法,其特征在于,所述设定分配规则包括下述至少一种:对于平行链中设定数量历史区块的区块生成节点,按照算力贡献规则进行设定数值基础链元素的分配;

按照平行链中平行链元素的分配比例,为分配有平行链元素的网络节点分配基础链元素;

对于平行链中的节点,按照平均规则进行设定数值基础链元素的分配。

6.根据权利要求2-5任一所述的方法,其特征在于,执行所述基础链事务请求中的账号智能合约之前,还包括:接收到平行链网络节点发送的通知事务请求,根据所述通知事务请求中的智能合约,在基础链中查找所述基础链事务请求;或从基础链的历史区块中回溯查找所述基础链事务请求。

7.根据权利要求1所述的方法,其特征在于,对所述基础链事务请求进行处理,并将基础链事务数据存储到基础链的区块中的同时,或之后,还包括:如果所述基础链事务请求为平行链部署数据的更新事务请求,则根据所述更新事务请求对各所述平行链网络节点中的平行链部署数据进行更改。

8.根据权利要求1所述的方法,其特征在于,对所述基础链事务请求进行处理,并将基础链事务数据存储到基础链的区块中的同时,或之后,还包括:根据所述基础链事务请求,根据本地存储的平行链部署数据产生平行链事务请求,在平行链网络中发送。

9.根据权利要求1所述的方法,其特征在于,对所述基础链事务请求进行处理,并将基础链事务数据存储到基础链的区块中的同时,或之后,还包括:根据所述基础链事务请求,从本地存储的平行链中获取事务数据,用于基础链的事务处理,或将所述事务数据在基础链网络节点中进行反馈。

10.根据权利要求1所述的方法,其特征在于,所述基础链用于支持应用程序平台的数据存储,所述平行链用于支持所述应用程序平台上运行的应用程序的数据存储。

11.根据权利要求1所述的方法,其特征在于,所述网络节点同时存储有基础链和平行链,以及存储有基础链和平行链的部署数据。

12.一种区块链网络的实现装置,其特征在于,配置于基础链网络节点,所述装置包括:请求获取模块,用于获取网络节点发送的基础链事务请求,其中,所述网络节点同时参与基础链网络和平行链网络,并同时存储基础链和平行链的区块本身;所述基础链事务请求中包括平行链的数据;所述平行链网络的平行链网络节点中的平行链部署数据包括:所述平行链网络节点中部署的平行链的共识机制、智能合约模板、哈希算法、加密算法以及激励机制;参与平行链的部分节点与参与基础链的部分节点是相同的网络节点;

请求处理模块,用于对所述基础链事务请求进行处理,并将基础链事务数据存储到基础链的区块中。

13.一种计算机设备,其特征在于,所述设备包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-11中任一所述的区块链网络的实现方法。

14.一种计算机存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-11中任一所述的区块链网络的实现方法。

说明书 :

一种区块链网络的实现方法、装置、设备及存储介质

技术领域

[0001] 本发明实施例涉及区块链技术领域,尤其涉及一种区块链网络的实现方法、装置、设备及存储介质。

背景技术

[0002] 现有区块链网络,按照其节点规模、共识机制和运行场景,可大致分为三种类型,即公链、联盟链和私链。各种类型的区块链网络,其都是用于生成、存储、和运行一条独立的区块链,能够处理相应的事务,存储事务数据到区块中。每条区块链所基于的区块链网络由多个节点参与,节点上部署有运行区块链技术所需的共识机制、智能合约、激励机制、以及加密算法等所需数据。通常,为了区块链的正常运行,需要节点提供算力,因此会通过发行数字货币并进行分配,来奖励节点参与区块处理和存储。同时,数字货币也可以作为区块链中事务请求处理的对象。典型的是比特币对应的区块链网络,比特币不仅作为对矿工节点的激励,还参与到各种交易事务中。
[0003] 随着区块链技术的快速发展,区块链技术的应用场景已经不限于数字货币交易了,例如,人们不满足于仅在一个独立区块链中运行事务,或者,不再满足于仅使用一个固有模式的区块链运行旧有事务,产生了不断翻新事务模式的需求。因此,上述区块链的类型已经无法适应多种场景的需求。

发明内容

[0004] 本发明实施例提供一种区块链网络的实现方法、装置、设备及存储介质,以使区块链网络能够与更多及更复杂应用场景的需求相匹配。
[0005] 第一方面,本发明实施例提供了一种区块链网络的实现方法,由基础链网络节点来执行,所述方法包括:
[0006] 获取网络节点发送的基础链事务请求,其中,所述网络节点同时参与基础链网络和平行链网络,所述基础链事务请求中包括平行链的数据;
[0007] 对所述基础链事务请求进行处理,并将基础链事务数据存储到基础链的区块中。
[0008] 第二方面,本发明实施例还提供了一种区块链网络的实现装置,配置于基础链网络节点,所述装置包括:
[0009] 请求获取模块,用于获取网络节点发送的基础链事务请求,其中,所述网络节点同时参与基础链网络和平行链网络,所述基础链事务请求中包括平行链的数据;
[0010] 请求处理模块,用于对所述基础链事务请求进行处理,并将基础链事务数据存储到基础链的区块中。
[0011] 第三方面,本发明实施例还提供了一种计算机设备,所述计算机设备包括:
[0012] 一个或多个处理器;
[0013] 存储装置,用于存储一个或多个程序;
[0014] 当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的区块链网络的实现方法。
[0015] 第四方面,本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所提供的区块链网络的实现方法。
[0016] 本发明实施例通过获取同时参与基础链网络和平行链网络的网络节点发送的基础链事务请求,对包括平行链的数据的基础链事务请求进行处理,并将基础链事务数据存储到基础链的区块中,实现通过同时参与基础链网络和平行链网络的网络节点对跨链的事务请求进行处理,建立两个区块链网络之间的关联,解决了现有区块链技术难以适应多种场景的需求的问题,使区块链网络能够与更多及更复杂应用场景的需求相匹配。

附图说明

[0017] 图1是本发明实施例一提供的一种区块链网络的实现方法的流程图;
[0018] 图2是本发明实施例二提供的一种区块链网络的实现方法的流程图;
[0019] 图3是本发明实施例三提供的一种区块链网络的实现方法的流程图;
[0020] 图4是本发明实施例四提供的一种区块链网络的实现装置的示意图;
[0021] 图5为本发明实施例五提供的一种计算机设备的结构示意图。

具体实施方式

[0022] 下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。
[0023] 另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
[0024] 实施例一
[0025] 图1是本发明实施例一提供的一种区块链网络的实现方法的流程图,本实施例可适用于基础链网络节点处理平行链有关数据的情况,该方法可以由区块链网络的实现装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可集成在承担区块链网络节点功能的计算机设备中,区块链网络节点可以是基础链网络节点,具体可以是基础链网络中具有区块处理权限的区块生成节点,或者也可以是其他任意网络节点。如图1所示,该方法包括如下操作:
[0026] S110、获取网络节点发送的基础链事务请求,其中,所述网络节点同时参与基础链网络和平行链网络,所述基础链事务请求中包括平行链的数据。
[0027] 其中,基础链是一种区块链,可以用于在各种独立的区块链之间建立联系。基础链可以与对应的平行链进行关联,用于辅助创建平行链、管理平行链、辅助平行链进行数据交换。例如,基础链可以用于在现有的彼此独立的区块链之间建立联系,使得区块链中的数据交互不再局限于一条单独的区块链,使得价值的流动范围不再局限于一条单独的区块链。也即,基础链可以对整个区块链网络中的运行参数进行管理和监督。
[0028] 平行链也是一种区块链,与基础链是相对的概念。平行链具有一般区块链的所有属性,同时,可能会基于基础链去建立、被管理以及进行数据交换。平行链可以是由基础链派生而成的,或者也可以是与基础链具有对等地位和功能,相互辅助建立、管理和数据交换。平行链可以有一条,也可以存在多条。且可选的是,多条平行链之间彼此独立,不相互影响,或者,两条平行链之间也可以是互为基础链和平行链的关系。
[0029] 通常,基础链是先于平行链建立和运行的,其具有更高的公信力和号召力,其价值更得到大家的认可。所以平行链的节点可以利用基础链节点的公信力和号召力来借助愿意提供算力的节点为其提供服务。
[0030] 基础链和平行链可以组成超级链网络。在超级链网络中,基础链也可以是一条或多条。需要说明的是,参与基础链的所有节点和参与平行链的所有节点之间存在重叠关系。也即,参与平行链的至少部分节点与参与基础链的至少部分是相同的网络节点。在这些重叠的网络节点中,部署有其参与的区块链的所有数据,即,既存储有基础链的部署数据,也存储有平行链的部署数据,还同时存储有基础链和平行链的区块本身。由于同时部署有不同区块链的数据,所以这样的网络节点可以生成不同区块链的事务请求,以及还可以本地查询到不同区块链中的事务数据,方便其进行跨链事务处理。
[0031] 另外还需说明的是,基础链和平行链可以采用相同或不同类型的数字货币进行激励,且基础链和平行链的网络节点用于存储数字货币的账号可以同时存储多种不同类型的数字货币,每个区块链中的数字货币都可以与账号进行交互,如转入或转出数字货币。区块链起到激励作用的不限于数字货币,也可以是其他由账号管理的元素。
[0032] 其中,账号可以是通过非对称密钥对来管理,公钥就是账号地址,私钥由账号所有者自己保存。基础链事务请求可以是基础链网络中一段时间内发生的交易请求或其他待处理的事务请求。基础链事务请求中包括的平行链数据可包括但不限于平行链的部署数据、事务请求、智能合约或账号中的数字货币等。
[0033] 在本发明实施例中,区块链网络中可以同时存在基础链和平行链两种不同类型的区块链。其中,平行链可以是从基础链中派生出的一条区块链,基础链可以为平行链提供跨链服务。参与平行链的节点可以是基础链中的部分或全部节点,其中,参与平行链的节点在参与平行链网络之前可以自主选择是否参与平行链的运行。
[0034] 在本发明的一个可选实施例中,所述网络节点同时存储有基础链和平行链,以及存储有基础链和平行链的部署数据。
[0035] 其中,部署数据可以是区块链中数据层、网络层、共识层、激励层、合约层和应用层对应的数据,如数据区块、时间戳、传播机制、验证机制、发行机制、算法机制、智能合约或可编程货币等数据。
[0036] 在本发明实施例中,网络节点可以是能够同时处理基础链网络和平行链网络中事务请求的节点,因此能够同时存储区块链网络和平行链网络对应的部署数据,且可以同时存储基础链和平行链的区块链事务数据。
[0037] S120、对所述基础链事务请求进行处理,并将基础链事务数据存储到基础链的区块中。
[0038] 其中,基础链事务数据可以是基础链网络节点发起的,需要经过区块生成节点处理后添加至区块中存储的数据,所谓处理可能包括诸如信息转换、格式调整、或代码运行等,根据具体的事务数据的情况来执行。其中,区块生成节点可以是区块链网络中具有区块处理权限的节点。例如,常规的交易请求数据就是典型的一种事务数据。在区块链的不同应用场景下会产生不同的事务数据需要处理。在同一个应用场景中,节点所发送的事务数据可能相同也可能不同。
[0039] 在本发明实施例中,基础链网络中的区块生成节点接收到基础链事务请求后,可以根据事务请求的具体情况对其进行处理并生成相应的基础链事务数据,并将基础链事务数据存储到基础链的区块中。
[0040] 在本发明的一个可选实施例中,对所述基础链事务请求进行处理,并将基础链事务数据存储到基础链的区块中的同时,或之后,还可以包括:根据所述基础链事务请求,根据本地存储的平行链部署数据产生平行链事务请求,在平行链网络中发送。
[0041] 其中,平行链事务请求是能够在平行链网络中传输,并被平行链节点处理的事务请求,可以是交易请求或其他待处理的事务请求。
[0042] 在本发明实施例中,当基础链网络节点获取到基础链事务数据时,还可以根据基础链事务请求中包括的平行链的数据产生平行链事务请求,并将产生的平行链事务请求在平行链网络中发送。也即,基础链可以通过向平行链发送平行链事务请求以使基础链和平行链之间完成数据交互。例如,基础链通过平行链事务请求告知平行链需要处理的事务或需要查询的数据等。平行链网络中的区块生成节点可以接收到平行链事务请求,对其进行处理生成平行链事务数据,并将平行链事务数据存储到平行链的区块中。
[0043] 在本发明的一个可选实施例中,对所述基础链事务请求进行处理,并将基础链事务数据存储到基础链的区块中的同时,或之后,还可以包括:根据所述基础链事务请求,从本地存储的平行链中获取事务数据,用于基础链的事务处理,或将所述事务数据在基础链网络节点中进行反馈。
[0044] 相应的,由于基础链事务请求中包括了平行链的数据,例如在平行链中查询事务数据的区块地址,因此,在本发明实施例中,还可以由基础链网络节点直接根据基础链事务请求从本地存储的平行链中获取相应的事务数据,该事务数据可以用于基础链网络中的区块生成节点进行事务处理。也即,在基础链网络中的区块生成节点处理基础链事务请求时,还可以利用平行链网络中的事务数据进行事务处理。另外,基础链网络节点还可以将在平行链中获取到的事务数据在基础链网络中反馈,供其他节点获知。
[0045] 在本发明的一个可选实施例中,所述基础链用于支持应用程序平台的数据存储,所述平行链用于支持所述应用程序平台上运行的应用程序的数据存储。
[0046] 在本发明实施例中,可以采用基础链来存储应用程序平台的数据,应用程序平台是能够支持多种应用程序功能的服务器平台,基础链存储和处理例如各种APP(Application,应用程序)管理平台的应用数据和缓存数据等。同时,可以采用平行链来存储应用程序平台上运行的各类应用程序的数据,例如,一条平行链可以存储一种APP的应用数据和缓存数据等。基础链可以管理平行链的创建、激励机制以及跨链的货币操作等。例如,基础链作为数字货币兑换的组织者。
[0047] 本发明实施例通过获取同时参与基础链网络和平行链网络的网络节点发送的基础链事务请求,对包括平行链的数据的基础链事务请求进行处理,并将基础链事务数据存储到基础链的区块中,实现通过同时参与基础链网络和平行链网络的网络节点对跨链的事务请求进行处理,建立两个区块链网络之间的关联,解决了现有区块链技术难以适应多种场景的需求的问题,使区块链网络能够与更多及更复杂应用场景的需求相匹配。
[0048] 实施例二
[0049] 图2是本发明实施例二提供的一种区块链网络的实现方法的流程图,本实施例以上述实施例为基础进行具体化,在本实施例中,给出了对所述基础链事务请求进行处理,并将基础链事务数据存储到基础链的区块中的同时,或之后的具体操作:执行所述基础链事务请求中的账号智能合约,对平行链网络节点的关联账号数据进行更改。本实施例主要提供了通过基础链对平行链的账号数据进行处理的情况,典型的可用于采用基础链的数字货币激励平行链的创建和运行。相应的,如图2所示,本实施例的方法可以包括:
[0050] S210、获取网络节点发送的基础链事务请求,其中,所述网络节点同时参与基础链网络和平行链网络,所述基础链事务请求中包括平行链的数据。
[0051] 在本发明的一个可选实施例中,适用于平行链创建时的场景,具体是获取网络节点发送的基础链事务请求可以包括:获取平行链创建节点发起的基础链事务请求,其中,所述基础链事务请求中包括所创建的平行链的部署数据、指定输出账号以及设定分配规则。
[0052] 其中,平行链创建节点可以是创建平行链创世区块的网络节点,其也部署有基础链的数据,所以可以发起基础链事务请求。指定输出账号可以是用于向其他账号输出基础链中流通的数字货币的账号。设定分配规则可以是平行链网络对基础链元素进行分配的依据,其中,基础链元素可以是基础链网络中所流通的数字货币。设定分配规则的具体内容可以依据实际需求制定,如平均分配规则等,本发明实施例对此并不进行限制。
[0053] 在本发明实施例中,可以由基础链网络的其中任意一个节点作为平行链创建节点发起创建平行链创世区块的基础链事务请求,也即,平行链创建节点可以将平行链的创世区块的内容作为一个基础链的事务请求,请求基础链网络节点写入基础链的区块中,由此,基础链可以对平行链的创世区块进行监管和回溯。平行链的创世区块的内容可以参考现有区块链的创世区块的内容建立。例如,写入平行链的共识机制、激励机制、发行的数字货币以及智能合约的模板等部署数据,除此之外,还可以在平行链的创世区块中规定相应的指定输出账号和设定分配规则。并且,平行链的创世区块可以控制平行链的后期运行。由此可见,平行链创建节点在创建平行链时,即可在发起的基础链事务请求规定对参与平行链建立的节点的激励规则。
[0054] 在本发明的一个可选实施例中,所述设定分配规则可以包括下述至少一种:
[0055] 对于平行链中设定数量历史区块的区块生成节点,按照算力贡献规则进行设定数值基础链元素的分配;
[0056] 按照平行链中平行链元素的分配比例,为分配有平行链元素的网络节点分配基础链元素;
[0057] 对于平行链中的节点,按照平均规则进行设定数值基础链元素的分配。
[0058] 其中,设定数量可以是根据实际需求设定的数值,例如10、20或50等,本发明实施例对此并不进行限制。算力贡献规则可以是人为规定的,用于衡量提供算力的强弱程度的节点所占有权重值或排序等。例如,在前5个区块生成节点中,各个区块生成节点提供的算力的权重值为0.1、0.2、0.3、0.2和0.2,或者在前5个区块生成节点中,各个区块生成节点提供的算力由强到弱的顺序依次为:区块生成节点1、区块生成节点3、区块生成节点2、区块生成节点5以及区块生成节点4。设定数值同时可以是根据实际需求设定的数值,例如100或200等,具体需要依据基础链中包括的基础链元素的总量进行适应性设定,本发明实施例对此同样不进行限制。平行链元素的分配比例可以是针对平行链网络节点所制定的,用于分配基础链元素的比例值。通常在平行链的运行过程中,会为每个区块的区块生成节点奖励一定的数字货币,即分配平行链的数字货币。通常会随着区块的数量增多,而有一定的衰减。在分配基础链元素时可以参照平行链数字货币的分配比例,进行相应比例的分配。平行链元素可以是平行链中流通的数字货币,可以与基础链元素相同或不同。平均规则可以是为所有参与平行链的节点平均分配的方式。
[0059] 在本发明实施例中,可选的,平行链的创世区块中所包括的设定分配规则可以包括以下几种情况:
[0060] 首先,可以依据平行链中区块生成节点的数量以及算力贡献规则对区块生成节点分配设定数值的基础链元素。基础链网络节点可以通过执行与平行链关联的智能合约,查询本地存储的平行链中的区块数据以获取平行链中区块生成节点信息。示例性的,如果将比特币作为基础链元素,且当平行链网络中区块生成节点的数量每达到10个时,则可将100个比特币按照10个区块生成节点提供算力的强弱程度进行分配。如果10个区块生成节点提供的算力的权重值分别为0.05、0.1、0.15、0.1、0.1、0.2、0.05、0.1、0.05和0.1,则为10个区块生成节点分别分配5、10、15、10、10、20、5、10、5和10个比特币。
[0061] 其次,还可以以平行链中平行链元素的分配比例为依据,只对平行链网络中具有平行链元素的网络节点分配基础链元素。示例性的,平行链网络中的节点1、节点2和节点3分别有5、10和15个比特币,则三个节点的平行链元素的分配比例为1:2:3。可以按照三个节点的平行链元素的分配比例将120个基础链中的比特币进行分配,则节点1、节点2和节点3分别分配20、40和60个比特币。
[0062] 当然,也还可以直接按照平均规则对平行链中的节点分配设定数值的基础链元素。示例性的,平行链中总共存在15个节点,可以将300个基础链中的比特币平均分配给15个节点,每个节点分配到20个比特币。
[0063] 需要说明的是,本发明实施例中基础链元素和平行链元素的分配可以遵循递减的规则。
[0064] S220、对所述基础链事务请求进行处理,并将基础链事务数据存储到基础链的区块中。
[0065] 上述对基础链元素的分配,可以执行一次,也可以分多次执行,均可由基础链事务请求中的智能合约来规定。该智能合约的执行可以是被回溯时执行。
[0066] S230、接收到平行链网络节点发送的通知事务请求,根据所述通知事务请求中的智能合约,在基础链中查找所述基础链事务请求;或,从基础链的历史区块中回溯查找所述基础链事务请求。
[0067] 其中,通知事务请求可以是平行链网络节点向基础链网络节点发送的,用于通知基础链网络节点进行跨链服务的请求。需要说明的是,通知事务请求是网络节点依据基础链中的部署数据产生的。网络节点可以根据平行链网络中的智能合约中的规定来产生通知事务请求。例如,当平行链中新增10个区块时,可以向基础链网络节点发起通知事务请求。
[0068] 在本发明实施例中,网络节点可以向基础链网络节点发送包括智能合约的通知事务请求。基础链网络节点接收到通知事务请求后,可以在基础链的区块数据中查找对应的基础链事务请求。或者,也可以由基础链网络节点直接在本地存储的历史区块中回溯查找基础链事务请求,如通过进程触发或设定查找规则来查找对应的基础链事务请求,本发明实施例并不对基础链网络节点查找基础链事务请求的具体方式进行限定。
[0069] S240、执行所述基础链事务请求中的账号智能合约,对平行链网络节点的关联账号数据进行更改。
[0070] 其中,基础链事务请求中的账号智能合约可以由平行链创建节点创建,并由基础链的区块生成节点添加到区块中执行,用于绑定平行链。该账号智能合约的内容可以规定跟平行链有关的任何操作,例如:如何在平行链的节点中分发激励货币,可分发的货币数额以及分发的规则等。关联账号可以是网络节点的私有账号,用于存放基础链或平行链的数字货币。
[0071] 在本发明实施例中,基础链网络节点在执行基础链事务请求中的账号智能合约时,可以依据账号智能合约中的具体规定,对平行链网络节点的关联账号数据进行更改。
[0072] 具体的,执行所述基础链事务请求中的账号智能合约,对平行链网络节点的关联账号数据进行更改的操作可以进一步细化为S241、S242以及S243等操作。
[0073] S241、执行所述基础链事务请求中的账号智能合约,在本地存储的平行链中获取平行链网络节点的关联账号。
[0074] 在本发明实施例中,基础链网络节点,也即基础链中的区块生成节点,如果同时存储了平行链,则可以在执行基础链事务请求中的账号智能合约时,查询本地存储的平行链中的各个区块,进而获取平行链网络的区块数据中相应的关联账号信息。
[0075] 需要说明的是,基础链事务请求中的账号智能合约的执行时间与账号智能合约的创建时间可以一致也可以不一致。也即,基础链事务请求中的账号智能合约可以在账号智能合约生成时立即执行,也可以按照平行链网络中区块的数量或者设定的时间周期等规则执行,本发明实施例并不对基础链事务请求中的账号智能合约的执行时机进行限定。
[0076] S242、产生基础链元素转移合约,所述基础链元素转移合约用于从所述账号智能合约中指定输出账号中,按照设定分配规则向所述关联账号进行基础链元素转移。
[0077] 其中,基础链元素转移合约可以是针对将基础链元素输出至平行链网络节点的关联账号所制定的规则等。
[0078] 在本发明实施例中,基础链网络节点获取到平行链网络节点的关联账号后,可以产生相应的基础链元素转移合约,用于从账号智能合约中指定输出账号中,按照设定分配规则向平行链的关联账号转移相应的基础链元素。
[0079] S243、将所述基础链元素转移合约在基础链的网络节点中传输,以请求基础链网络节点根据本地存储的平行链,对所述基础链元素转移合约中的事务进行验证。
[0080] 在本发明实施例中,基础链网络中的区块生成节点完成向关联账号的基础链元素转移的事务处理后,将相应的事务数据添加到区块中,并将该区块发送给其他节点,请求进行区块的确认。其他网络节点接收到区块后,可以依据本地存储的平行链对基础链元素转移合约中的事务的有效性进行验证。例如,验证设定分配规则是否正确,转向的账户是否与平行链中记录的节点账户一致等。从而保证区块生成节点正确执行了账号智能合约。
[0081] 需要说明的是,图2仅是一种实现方式的示意图,S220与S230-S240之间并没有先后顺序关系,可以先实施S220,再实施S230-S240,也可以两者并行实施。
[0082] 在一个具体的例子中,假设区块链网络中存在3条独立的区块链,其中包括一条基础链(Root链)和两条平行链,即A链和B链。当A链的x账号需要将自己A链上的物件C跟B链的w账号的物件D进行交换的时候,可以通过Root链来完成。具体是:
[0083] 首先,A链x账号发起A链的第一事务请求,把物件C转移给Root链的第一协调者账号,第一协调者账号可以是临时指定或默认共用的账号。
[0084] B链w账号发起B链的第二事务请求,把物件D转移给Root链的第二协调者账号,第二协调者账号可以是临时指定或默认共用的账号。第一和第二协调者账号可以相同或不同。
[0085] A链和/或B链的网络节点,在发起第一事务请求和第二事务请求时,还可以同时发起Root链的事务请求,通过智能合约要求Root链监测在第一协调者账号和第二协调者账号中是否转入了物件C和物件D。
[0086] 如果已经转入,则发起A链的第三事务请求和B链的第四事务请求,把物件C转移给w账号,把物件D转移给x账号。或者发起Root链的第五事务请求,把物件C转移给w账号,把物件D转移给x账号。
[0087] Root链可以作为跨链的协调者,提供跨链服务。需要说明的是,任何有公信力的链都可以作为基础链。上述过程中,既保证了A链和B链之间可以发起物品交换的功能,同时又解决了A链和B链互相不信任,直接转移物品可能造成欺诈的问题。上述物品可以是任意的,例如数字货币或电子物品等。
[0088] 采用上述技术方案通过获取网络节点发送的基础链事务请求对基础链事务请求进行处理,并将基础链事务数据存储到基础链的区块中,然后同时或按照设定的执行时间执行基础链事务请求中的账号智能合约,以实现对平行链网络节点的关联账号数据的更改,能够使区块链网络满足更多及更复杂的应用场景的需求。
[0089] 实施例三
[0090] 图3是本发明实施例三提供的一种区块链网络的实现方法的流程图,本实施例以上述实施例为基础进行具体化,在本实施例中,给出了对所述基础链事务请求进行处理,并将基础链事务数据存储到基础链的区块中的同时,或之后的具体操作:如果所述基础链事务请求为平行链部署数据的更新事务请求,则根据所述更新事务请求对各所述平行链网络节点中的平行链部署数据进行更改。相应的,如图3所示,本实施例的方法可以包括:
[0091] S310、获取网络节点发送的基础链事务请求,其中,所述网络节点同时参与基础链网络和平行链网络,所述基础链事务请求中包括平行链的数据。
[0092] S320、对所述基础链事务请求进行处理,并将基础链事务数据存储到基础链的区块中。
[0093] S330、如果所述基础链事务请求为平行链部署数据的更新事务请求,则根据所述更新事务请求对各所述平行链网络节点中的平行链部署数据进行更改。
[0094] 其中,更新事务请求可以是用于更改平行链网络节点中部署数据的请求,例如对平行链中的参数、智能合约的模块或加密算法等数据进行更改,或者强制要求消除平行链等。
[0095] 在本发明实施例中,如果网络节点需要对平行链部署数据进行更改,则可以将更改需求作为基础链事务请求发送至基础链网络中。基础链网络中的区块生成节点接收到平行链部署数据的更新事务请求后,可以依据更新事务请求的具体内容对各平行链网络节点中的平行链部署数据进行更改。
[0096] 示例性的,基础链网络中的区块生成节点可以采用提案-投票的方式来处理更新事务请求。具体的,基础链网络节点可以发起一个更新事务请求,该更新事务请求包括了平行链部署数据的更改内容信息。同时,该基础链网络节点还需要规定提案-投票进程的相关参数,例如,基础链网络中的设定比例(如2/3)数量的节点同意更新事务请求后允许对平行链的部署数据进行更改;投票的截止时间,如10分钟;以及作为保障金的冻结资金等。然后,基础链网络节点可以收集基础链网络中的其他节点的投票结果,并依据投票结果判断是否可以对网络节点发送的更新事务请求进行处理。当确定根据提案-投票的方式可以对更新事务请求进行处理时,可以再次发送一条相应的更新事务请求对平行链部署数据进行更改。
[0097] 在本发明的一个可选实施例中,所述平行链网络节点中的平行链部署数据包括:所述平行链网络节点中部署的平行链的共识机制、智能合约模板、哈希算法、加密算法以及激励机制中的至少一个。
[0098] 在本发明实施例中,平行链网络节点中的平行链部署数据包括但不限于平行链网络节点中部署的平行链的共识机制、智能合约模板、哈希算法、加密算法以及激励机制等。
[0099] 需要说明的是,图3仅是一种实现方式的示意图,S320和S330之间并没有先后顺序关系,可以先实施S320,再实施S330,也可以两者并行实施。
[0100] 本发明实施例通过获取同时参与基础链网络和平行链网络的网络节点发送的基础链事务请求,对包括平行链的数据的基础链事务请求进行处理,并将基础链事务数据存储到基础链的区块中。如果基础链事务请求为平行链部署数据的更新事务请求,则可以根据更新事务请求对各平行链网络节点中的平行链部署数据进行更改,实现通过同时参与基础链网络和平行链网络的网络节点对跨链的事务请求进行处理,建立两个区块链网络之间的关联,解决了现有区块链技术难以适应多种场景的需求的问题,使区块链网络能够与更多及更复杂应用场景的需求相匹配。
[0101] 实施例四
[0102] 图4是本发明实施例四提供的一种区块链网络的实现装置的示意图,所述装置配置于基础链网络节点,如图4所示,所述装置包括:请求获取模块410、以及请求处理模块420,其中:
[0103] 请求获取模块410,用于获取网络节点发送的基础链事务请求,其中,所述网络节点同时参与基础链网络和平行链网络,所述基础链事务请求中包括平行链的数据;
[0104] 请求处理模块420,用于对所述基础链事务请求进行处理,并将基础链事务数据存储到基础链的区块中。
[0105] 本发明实施例通过获取同时参与基础链网络和平行链网络的网络节点发送的基础链事务请求,对包括平行链的数据的基础链事务请求进行处理,并将基础链事务数据存储到基础链的区块中,实现通过同时参与基础链网络和平行链网络的网络节点对跨链的事务请求进行处理,建立两个区块链网络之间的关联,解决了现有区块链技术难以适应多种场景的需求的问题,使区块链网络能够与更多及更复杂应用场景的需求相匹配。
[0106] 可选的,所述装置还包括:第一数据更改模块,用于执行所述基础链事务请求中的账号智能合约,对平行链网络节点的关联账号数据进行更改。
[0107] 可选的,所述第一数据更改模块,具体用于执行所述基础链事务请求中的账号智能合约,在本地存储的平行链中获取平行链网络节点的关联账号;产生基础链元素转移合约,所述基础链元素转移合约用于从所述账号智能合约中指定输出账号中,按照设定分配规则向所述关联账号进行基础链元素转移;将所述基础链元素转移合约在基础链的网络节点中传输,以请求基础链网络节点根据本地存储的平行链,对所述基础链元素转移合约中的事务进行验证。
[0108] 可选的,请求获取模块410,还用于获取平行链创建节点发起的基础链事务请求,其中,所述基础链事务请求中包括所创建的平行链的部署数据、所述指定输出账号以及所述设定分配规则。
[0109] 可选的,所述设定分配规则包括下述至少一种:对于平行链中设定数量历史区块的区块生成节点,按照算力贡献规则进行设定数值基础链元素的分配;按照平行链中平行链元素的分配比例,为分配有平行链元素的网络节点分配基础链元素;对于平行链中的节点,按照平均规则进行设定数值基础链元素的分配。
[0110] 可选的,所述装置还包括:请求查找模块,用于接收到平行链网络节点发送的通知事务请求,根据所述通知事务请求中的智能合约,在基础链中查找所述基础链事务请求;或,从基础链的历史区块中回溯查找所述基础链事务请求。
[0111] 可选的,所述装置还包括:第二数据更改模块,用于如果所述基础链事务请求为平行链部署数据的更新事务请求,则根据所述更新事务请求对各所述平行链网络节点中的平行链部署数据进行更改。
[0112] 可选的,所述平行链网络节点中的平行链部署数据包括:所述平行链网络节点中部署的平行链的共识机制、智能合约模板、哈希算法、加密算法以及激励机制中的至少一个。
[0113] 可选的,所述装置还包括:请求发送模块,用于根据所述基础链事务请求,根据本地存储的平行链部署数据产生平行链事务请求,在平行链网络中发送。
[0114] 可选的,所述装置还包括:数据反馈模块,用于根据所述基础链事务请求,从本地存储的平行链中获取事务数据,用于基础链的事务处理,或将所述事务数据在基础链网络节点中进行反馈。
[0115] 可选的,所述基础链用于支持应用程序平台的数据存储,所述平行链用于支持所述应用程序平台上运行的应用程序的数据存储。
[0116] 可选的,所述网络节点同时存储有基础链和平行链,以及存储有基础链和平行链的部署数据。
[0117] 上述区块链网络的实现装置可执行本发明任意实施例所提供的区块链网络的实现方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的区块链网络的实现方法。
[0118] 实施例五
[0119] 图5为本发明实施例五提供的一种计算机设备的结构示意图。图5示出了适于用来实现本发明实施方式的计算机设备512的框图。图5显示的计算机设备512仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。计算机设备512典型的是承担区块链系统节点功能的计算设备。
[0120] 如图5所示,计算机设备512以通用计算设备的形式表现。计算机设备512的组件可以包括但不限于:一个或者多个处理器516,存储装置528,连接不同系统组件(包括存储装置528和处理器516)的总线518。
[0121] 总线518表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry  Standard Architecture,ISA)总线,微通道体系结构(Micro Channel Architecture,MCA)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnect,PCI)总线。
[0122] 计算机设备512典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备512访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0123] 存储装置528可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory,RAM)530和/或高速缓存存储器532。计算机设备512可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统534可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如只读光盘(Compact Disc-Read Only Memory,CD-ROM)、数字视盘(Digital Video Disc-Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线518相连。存储装置528可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
[0124] 具有一组(至少一个)程序模块526的程序536,可以存储在例如存储装置528中,这样的程序模块526包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块526通常执行本发明所描述的实施例中的功能和/或方法。
[0125] 计算机设备512也可以与一个或多个外部设备514(例如键盘、指向设备、摄像头、显示器524等)通信,还可与一个或者多个使得用户能与该计算机设备512交互的设备通信,和/或与使得该计算机设备512能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口522进行。并且,计算机设备512还可以通过网络适配器520与一个或者多个网络(例如局域网(Local  Area Network,LAN),广域网Wide Area Network,WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器520通过总线518与计算机设备512的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备512使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(Redundant Arrays of Independent Disks,RAID)系统、磁带驱动器以及数据备份存储系统等。
[0126] 处理器516通过运行存储在存储装置528中的程序,从而执行各种功能应用以及数据处理,例如实现本发明上述实施例所提供的区块链网络的实现方法。
[0127] 也即,所述处理单元执行所述程序时实现:获取网络节点发送的基础链事务请求,其中,所述网络节点同时参与基础链网络和平行链网络,所述基础链事务请求中包括平行链的数据;对所述基础链事务请求进行处理,并将基础链事务数据存储到基础链的区块中。
[0128] 通过所述计算机设备获取同时参与基础链网络和平行链网络的网络节点发送的基础链事务请求,对包括平行链的数据的基础链事务请求进行处理,并将基础链事务数据存储到基础链的区块中,实现通过同时参与基础链网络和平行链网络的网络节点对跨链的事务请求进行处理,建立两个区块链网络之间的关联,解决了现有区块链技术难以适应多种场景的需求的问题,使区块链网络能够与更多及更复杂应用场景的需求相匹配。
[0129] 实施例六
[0130] 本发明实施例六还提供一种存储计算机程序的计算机存储介质,所述计算机程序在由计算机处理器执行时用于执行本发明上述实施例任一所述的区块链网络的实现方法:获取网络节点发送的基础链事务请求,其中,所述网络节点同时参与基础链网络和平行链网络,所述基础链事务请求中包括平行链的数据;对所述基础链事务请求进行处理,并将基础链事务数据存储到基础链的区块中。
[0131] 本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(Read Only Memory,ROM)、可擦式可编程只读存储器((Erasable Programmable Read Only Memory,EPROM)或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0132] 计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0133] 计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、射频(Radio Frequency,RF)等等,或者上述的任意合适的组合。
[0134] 可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0135] 注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。