一种创建区块链母子链的方法和装置与流程

文档序号:30707534发布日期:2022-07-10 00:31阅读:183来源:国知局
一种创建区块链母子链的方法和装置与流程

1.本说明书涉及计算机软件技术领域,尤其涉及一种创建区块链母子链的方法、装置、电子设备和存储介质。


背景技术:

2.区块链技术的存在三大难题:安全,去中心化和可扩展性。以比特币区块链技术为例,它的每一个节点都下载和储存所有的数据包,使得网络可以民主自治,但也同时带来了巨大的储存空间损耗和校验成本。区块链技术的演化上,除了公有链外,也有联盟链和私有链。联盟链只允许预设的节点进行记账,加入的节点都需要申请和身份验证,这种区块链技术实质上是在确保安全和效率的基础上进行的“部分去中心化”或“多中心化”的妥协。随着使区块链网络交易数据量持续增多,使得网络堵塞、区块链账本数据急速膨胀的问题日益严重,扩容解决方案成为区块链技术突破限制的重点关注问题之一。


技术实现要素:

3.本说明书实施例的目的是针对上述问题,提供一种创建区块链母子链的方法、装置、电子设备和存储介质。
4.为解决上述技术问题,本说明书实施例是这样实现的:
5.第一方面,提出了一种创建区块链母子链的方法,创建用于子链注册的系统合约并部署在母链上,包括:
6.所述母链任意节点提交子链注册元信息至所述系统合约,所述子链注册元信息包括子链id和子链节点地址名单;
7.所述子链全部节点提交同一所述子链注册元信息至所述系统合约;
8.调用所述系统合约验证所述子链注册元信息;
9.若所述子链的全部节点所提交的所述子链注册元信息均通过验证,调用所述系统合约创建所述子链。
10.第二方面,提出了一种创建区块链母子链的装置,包括:
11.系统合约模块,用于创建子链注册的系统合约并部署在母链上;
12.子链注册申请提交模块,用于母链任意节点和所述子链节点提交同一所述子链注册元信息至所述系统合约;
13.子链注册申请验证模块,用于调用所述系统合约模块验证所述子链注册元信息;
14.子链创建模块,用于在所述子链的全部节点所提交的所述子链注册元信息均通过验证后,调用所述系统合约模块创建所述子链。
15.第三方面,提出了一种电子设备,包括:处理器;以及
16.被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行第一方面所述的方法。
17.第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储一个
或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行第一方面所述的方法。
18.本发明可以达到至少以下技术效果:
19.本发明通过在母链注册的方式创建子链,实现了母链分片功能,提高了区块链网络可扩展性;子链创建简单易行,无需重新部署节点程序,可有效节约区块链存储空间;子链交易数据可通过母链进行存在性验证,能够确保交易真实性。
附图说明
20.为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
21.图1为本说明书实施例提供的一种创建区块链母子链的方法逻辑图。
22.图2为本说明书实施例提供的一种创建区块链母子链的方法示意图之一。
23.图3为本说明书实施例提供的一种创建区块链母子链的方法示意图之二。
24.图4为本说明书实施例提供的一种创建区块链母子链的装置示意图之一。
25.图5为本说明书实施例提供的一种创建区块链母子链的装置示意图之二。
26.图6为本说明书的一个实施例提供的电子设备的结构示意图。
具体实施方式
27.为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
28.下面通过具体的实例对本说明书所涉及的一种创建区块链母子链的方案进行详述。
29.关键术语
30.区块链技术:是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。从本质上讲,它是一个共享数据库,存储于其中的数据或信息,具有不可伪造、全程留痕、可以追溯、公开透明、集体维护”等特征。基于这些特征,区块链技术奠定了坚实的信任基础,创造了可靠的合作机制,具有广阔的运用前景。按照准入机制分类,区块链分为公有链、联盟链和私有链。
31.区块链分片sharding:区块链网络由主链和分片(shards)链组成,分片链上交易处于自己独立的空间中,可以独立处理交易。其核心思路是并非每个节点都需要处理所有的交易。分片之前整个网络的处理取决于单个节点的处理。分片后,只有同一片内的处理是同步的、一致的,不同分片之间则可以是异步的。这种属于底层解决方案,因为它是在区块
链本身的基本协议中实施的。分片链的共识依赖于主链;已存在的主链,实现时会修改其底层协议,需要硬分叉。
32.子链:是在主链上派生出来的具有独立功能的区块链。子链实现了区块链系统的可扩展性,提供了一种解决区块链分片的方案,通过子链可实现高并行性的处理,极大地缓解了主链的处理瓶颈。
33.智能合约:运行在区块链系统内的程序,具有按设定逻辑自动执行、执行结果不可窜改的特性。智能合约是代码和数据的集合,其整个交易过程通过数字代码来体现,在满足交易条件的情况下便可自动完成交易。
34.实施例一
35.本发明的目的是通过子链实现母链的数据分片,提高区块链网络扩展性,子链之间数据隔离,简化实施复杂度,节约区块链网络数据存储空间。参照图1所示,为本发明实施例中一种创建区块链母子链的逻辑示意图。需要说明的是,本发明方案采用的是基于智能合约进行子链注册申请和验证。智能合约具有允许在没有第三方的情况下进行可信交易,且交易可追踪且不可逆转。而使用一个智能合约需要合约的参与方事先达成协定,然后当参与方通过在合约宿主平台上安装合约,致力于合约的执行时,合约就被发现并被调用执行。因此,本发明实施例的方法参照图2所示,包括:
36.步骤201:创建用于子链注册的系统合约并部署在母链上。需要说明的是,这里所述的系统合约,即为智能合约。所述系统合约部署于母链上,因此,可以说是母链通过系统合约自动完成子链的注册申请验证和子链的创建。
37.可选地,所述系统合约进行子链注册验证包括:若所述子链id唯一存在于所述母链中且提交所述子链注册元信息的节点存在于所述子链节点地址名单中,则通过验证。需要说明的是,这里应验证子链id的唯一性,之所以如此,是因为对于一个母链来说,可以创建若干个子链,但是子链之间是隔离的,也即子链id是子链唯一性标识,目的是保持母链与子链关系的全局一致性。
38.可选地,所述系统合约进行子链创建包括在所述母链中记录所述子链注册元信息和最新状态信息。具体地,系统合约对于子链的创建是通过母链调用该系统合约将子链注册元信息记录于母链中,以使子链建立与母链的关联关系;在子链创建成功后,子链交易数据的最新状态将以特定方式诸如存证记录存储于母链。
39.步骤202:所述母链任意节点提交子链注册元信息至所述系统合约,所述子链注册元信息包括子链id和子链节点地址名单。可选地,所述子链注册元信息还包括子链出块间隔时间和子链接入模式。这里需要说明的是,最初应由母链的任意节点首先发起子链注册申请。在提交子链注册申请时,子链注册元信息至少要包括子链id和子链节点地址。子链id的作用在上文中已经描述,不再赘述。子链节点地址是指构成子链的全部成员节点的地址,以便在注册过程中待子链全部成员节点提交子链注册元信息后进行验证。子链节点地址名单是动态的,子链创建后子链成员节点可以变化,但应将最新变化状态记录于所述母链。
40.步骤203:所述子链全部节点提交同一所述子链注册元信息至所述系统合约。这里需要说明的是,在母链节点提交完子链注册申请后,子链全部节点也应向母链提交子链注册申请,且所提交的子链注册元信息应与母链节点提交的子链注册元信息完全相同。
41.步骤204:调用所述系统合约验证所述子链注册元信息。这里调用系统合约进行子
链注册验证,即若所述子链id唯一存在于所述母链中且提交所述子链注册元信息的节点存在于所述子链节点地址名单中,则该节点提交的注册申请通过验证。
42.步骤205:若所述子链的全部节点所提交的所述子链注册元信息均通过验证,调用所述系统合约创建所述子链。这里调用系统合约进行子链创建,即在所述母链中记录所述子链注册元信息和最新状态信息,将子链注册元信息记录于母链中,以使子链建立与母链的关联关系;在子链创建成功后,子链交易数据的最新状态将以特定方式诸如存证记录存储于母链。
43.本实施例提出一种创建区块链母子链的方法另一种实现方案如图3所示,还包括:
44.步骤206:当所述子链每次出块时,由出块的所述子链节点生成存证记录提交至所述母链作为存在性证明,以使所述母链与所述子链锚定关联,所述存证记录包括所述子链当前区块高度和区块哈希。这里需要说明的是,母链与子链之间的锚定关联,既能够有效节约母链在记录子链交易数据的空间,又能够为交易数据的可信提供验证提供关联通道。
45.步骤207:当查询所述子链的交易真实性时,通过所述母链对所述子链的交易数据进行所述存在性证明查验,并反馈查验结果。具体地,当子链用户需要查询子链交易数据的真实性时,向母链发起查询,母链通过查找子链交易数据的存证记录,即可将交易数据真实性查询结果反馈至子链用户。
46.实施例二
47.图4为本说明书的一个实施例提供的创建区块链母子链的装置400的结构示意图。请参考图4,在一种实施方式中创建区块链母子链的装置,包括:
48.系统合约模块401,用于创建子链注册的系统合约并部署在母链上;
49.子链注册申请提交模块402,用于母链任意节点和所述子链节点提交同一所述子链注册元信息至所述系统合约;
50.子链注册申请验证模块403,用于调用所述系统合约模块验证所述子链注册元信息;
51.子链创建模块404,用于在所述子链的全部节点所提交的所述子链注册元信息均通过验证后,调用所述系统合约模块创建所述子链。
52.本实施例提出一种创建区块链母子链的装置另一种实现方案如图4所示,还包括:
53.母子链锚定模块405,用于所述子链每次出块时,由出块的所述子链节点生成存证记录提交至所述母链作为存在性证明,以使所述母链与所述子链锚定关联,所述存证记录包括所述子链当前区块高度和区块哈希
54.子链交易查验模块406,用于当查询所述子链的交易真实性时,通过所述母链对所述子链的交易数据进行所述存在性证明查验。。
55.应理解,本说明书实施例的创建区块链母子链的装置还可执行图1至图3中创建区块链母子链的装置(或设备)执行的方法,并实现创建区块链母子链的装置(或设备)在图1至图3所示实例的功能,在此不再赘述。
56.实施例三
57.图6是本说明书的一个实施例电子设备的结构示意图。请参考图6,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random-access memory,ram),也可能还包括非易失性存储
器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
58.处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是isa(industry standard architecture,工业标准体系结构)总线、pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
59.存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
60.处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成共享资源访问控制装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
61.创建用于子链注册的系统合约并部署在母链上,包括:
62.所述母链任意节点提交子链注册元信息至所述系统合约,所述子链注册元信息包括子链id和子链节点地址名单;
63.所述子链全部节点提交同一所述子链注册元信息至所述系统合约;
64.调用所述系统合约验证所述子链注册元信息;
65.若所述子链的全部节点所提交的所述子链注册元信息均通过验证,调用所述系统合约创建所述子链。
66.上述如本说明书图1至图3所示实施例揭示的一种创建区块链母子链的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
67.当然,除了软件实现方式之外,本说明书实施例的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
68.实施例四
69.本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储
一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1至图3所示实施例的方法,并具体用于执行以下方法:
70.创建用于子链注册的系统合约并部署在母链上,包括:
71.所述母链任意节点提交子链注册元信息至所述系统合约,所述子链注册元信息包括子链id和子链节点地址名单;
72.所述子链全部节点提交同一所述子链注册元信息至所述系统合约;
73.调用所述系统合约验证所述子链注册元信息;
74.若所述子链的全部节点所提交的所述子链注册元信息均通过验证,调用所述系统合约创建所述子链。
75.总之,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书的保护范围之内。
76.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
77.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
78.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
79.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1