CN116896564B - 基于区块链网络的区块生成方法、装置和计算机设备 - Google Patents
基于区块链网络的区块生成方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN116896564B CN116896564B CN202311161243.9A CN202311161243A CN116896564B CN 116896564 B CN116896564 B CN 116896564B CN 202311161243 A CN202311161243 A CN 202311161243A CN 116896564 B CN116896564 B CN 116896564B
- Authority
- CN
- China
- Prior art keywords
- time
- gradient
- consuming
- task execution
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 82
- 238000003860 storage Methods 0.000 claims abstract description 133
- 238000004590 computer program Methods 0.000 claims abstract description 24
- 238000012795 verification Methods 0.000 claims description 34
- 238000012512 characterization method Methods 0.000 claims description 11
- 230000008685 targeting Effects 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 21
- 230000008569 process Effects 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 9
- 238000012549 training Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 239000000284 extract Substances 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000013145 classification model Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1854—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with non-centralised forwarding system, e.g. chaincast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种基于区块链网络的区块生成方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:确定当前节点可调度且满足新区块生成条件的目标耗时梯度;从与目标耗时梯度对应的请求存储池中获取待处理的任务执行请求,并执行待处理的任务执行请求对应的待执行任务,得到任务执行结果;创建新区块,并确定区块树中每条区块链上最新上链的区块的标识;根据任务执行结果、区块树中每条区块链上最新上链的区块的标识,生成新区块的标识;将携带有标识的新区块发送至区块链网络除当前节点之外的其余节点进行共识,并在共识通过后将新区块添加至区块树中与目标耗时梯度对应的区块链上。采用本方法能够提升区块的生成效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种基于区块链网络的区块生成方法、装置和计算机设备。
背景技术
随着科学技术的发展,出现了区块链技术,区块链本质上是一种分布式的、多中心化的链式数据存储系统,区块链中每个区块中的区块数据均与上一个区块中的区块数据存在关联,因此,无法通过篡改区块数据来进行作弊,能够确保任何区块上的区块数据均是公开透明的,提高了输入信息的安全性。
对于目前的区块链而言,比如Hyperledger Fabric和长安链,这些区块链在生成新区块的过程中,只能等到一个节点生成新区块,其他节点共识结束后,才能进入下一个新区块的生成过程,这种情况效率很低,节点大多数的时间都在等待状态,从而降低了区块的生成效率。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提升区块生成效率的基于区块链网络的区块生成方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种基于区块链网络的区块生成方法,应用于区块链网络中至少一部分节点中的每个节点,所述区块链网络存储有区块树,所述区块树包括多个耗时梯度各自对应的区块链,所述耗时梯度表征执行任务的耗时,所述方法包括:
确定当前节点可调度且满足新区块生成条件的目标耗时梯度;
从与所述目标耗时梯度对应的请求存储池中获取待处理的任务执行请求,并执行所述待处理的任务执行请求对应的待执行任务,得到任务执行结果;所述待执行任务的执行耗时,与所述目标耗时梯度相匹配;
创建新区块,并确定所述区块树中每条区块链上最新上链的区块的标识;
根据所述任务执行结果、所述区块树中每条区块链上最新上链的区块的标识,生成所述新区块的标识;
将携带有标识的新区块发送至所述区块链网络除所述当前节点之外的其余节点进行共识,并在共识通过后将所述新区块添加至所述区块树中与所述目标耗时梯度对应的区块链上。
第二方面,本申请还提供了一种基于区块链网络的区块生成装置,所述装置包括:
目标耗时梯度确定模块,用于确定当前节点可调度且满足新区块生成条件的目标耗时梯度;
新区块生成模块,用于从与所述目标耗时梯度对应的请求存储池中获取待处理的任务执行请求,并执行所述待处理的任务执行请求对应的待执行任务,得到任务执行结果;所述待执行任务的执行耗时,与所述目标耗时梯度相匹配; 创建新区块,并确定所述区块树中每条区块链上最新上链的区块的标识;根据所述任务执行结果、所述区块树中每条区块链上最新上链的区块的标识,生成所述新区块的标识;
共识模块,用于将携带有标识的新区块发送至所述区块链网络除所述当前节点之外的其余节点进行共识,并在共识通过后将所述新区块添加至所述区块树中与所述目标耗时梯度对应的区块链上。
在其中一个实施例中,所述目标耗时梯度确定模块还用于确定所述当前节点可调度的耗时梯度;针对所述当前节点可调度的每个耗时梯度,确定与所针对的可调度的耗时梯度对应的触发器;当所述触发器指示所述针对的可调度的耗时梯度满足新区块生成条件时,则将所述针对的可调度的耗时梯度作为目标耗时梯度;按照预设信息更新规则,更新所述触发器。
在其中一个实施例中,所述目标耗时梯度确定模块还用于在所述触发器为定时器,且所述定时器记载的时间从初始时间变更至目标时间时,确定所述针对的可调度的耗时梯度为目标耗时梯度;将所述定时器记录的时间重新调整为所述初始时间。
在其中一个实施例中,所述目标耗时梯度确定模块还用于在所述触发器为计数器,且所述计数器用于记载与所述针对的可调度的耗时梯度相对应的请求存储池中的请求数量时,判断所述计数器记载的请求数量是否达到目标数量;当所述计数器记载的请求数量达到目标数量,则确定所述针对的可调度的耗时梯度为目标耗时梯度;根据当前时刻与所述针对的可调度的耗时梯度相对应的请求存储池中的请求数量,对所述计数器记录的请求数量进行更新。
在其中一个实施例中,所述新区块生成模块还用于确定与所述目标耗时梯度相适配的预配置资源量,并通过所述预配置资源量的资源执行所述待处理的任务执行请求对应的待执行任务;确定所述目标耗时梯度所表征的耗时,并当所述待执行任务未在所述目标耗时梯度所表征的耗时内执行完毕时,确定所述待执行任务执行失败;将所述待处理的任务执行请求再次存储至与所述目标耗时梯度相对应的请求存储池。
在其中一个实施例中,所述新区块生成模块还用于确定所述待执行任务执行失败的次数;在所述次数大于或等于预设次数阈值时,确定更新耗时梯度;所述更新耗时梯度表征的耗时大于所述目标耗时梯度表征的耗时;确定可调度所述更新耗时梯度的节点,并将所述待处理的任务执行请求发送至可调度所述更新耗时梯度的节点;发送的所述待处理的任务执行请求,用于触发可调度所述更新耗时梯度的节点,将所述待处理的任务执行请求存储至与所述更新耗时梯度相对应的请求存储池。
在其中一个实施例中,所述共识模块还用于将所述携带有标识的新区块在所述区块链网络中进行广播;其中,广播的所述携带有标识的新区块,用于触发除所述当前节点之外的其余节点对所述携带有标识的新区块进行投票式共识,得到共识结果。
在其中一个实施例中,所述共识结果包括各所述其余节点各自的投票结果;每个所述投票结果,为相应其余节点对携带有标识的新区块进行正确性验证而得到的结果;在所述投票结果为第一结果的情况下,所述投票结果表征相应其余节点确认携带有标识的新区块验证通过;在所述投票结果为第二结果的情况下,所述投票结果表征相应其余节点确认携带有标识的新区块验证未通过;在第一结果的数量大于第二结果的数量时,所述共识结果为表征携带有标识的新区块通过共识的结果。
在其中一个实施例中,所述基于区块链网络的区块生成装置还包括请求存储模块,用于当接收到待存储的任务执行请求时,获取所述待存储的任务执行请求携带的耗时梯度信息;当所述区块链网络中存在与所述耗时梯度信息相对应的对应耗时梯度时,确定所述区块链网络中可调度所述对应耗时梯度的目标节点;将所述待存储的任务执行请求发送至所述目标节点;其中,发送的所述待存储的任务执行请求,用于触发所述目标节点将所述待存储的任务执行请求存储至与所述对应耗时梯度相对应的请求存储池。
在其中一个实施例中,所述请求存储模块还用于当所述区块链网络中不存在与所述耗时梯度信息相对应的对应耗时梯度时,将所述待存储的任务执行请求发送至所述区块链网络中的主节点;其中,发送的所述待存储的任务执行请求,用于触发所述主节点创建与所述耗时梯度信息相对应的对应耗时梯度,并将所述对应耗时梯度在所述区块链网络中的各节点之间进行广播;发送的所述待存储的任务执行请求,还用于触发所述主节点将所述待存储的任务执行请求转发至所述区块链网络中的空闲节点,以使所述空闲节点作为可调度所述对应耗时梯度的节点,并将所述待存储的任务执行请求存储至与所述对应耗时梯度相对应的请求存储池。
在其中一个实施例中,所述请求存储模块还用于获取发送所述待存储的任务执行请求的目标对象的对象签名;所述对象签名是通过与所述目标对象相对应的私钥进行加密得到;获取与所述私钥相匹配的公钥,并通过所述公钥对所述对象签名进行验证;在对所述对象签名验证通过的情况下,获取所述待存储的任务执行请求携带的耗时梯度信息。
第三方面,本申请还提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现本申请实施例提供的任一种基于区块链网络的区块生成方法中的步骤。
第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例提供的任一种基于区块链网络的区块生成方法中的步骤。
第五方面,本申请还提供了一种计算机程序产品,所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本申请实施例提供的任一种基于区块链网络的区块生成方法中的步骤。
上述基于区块链网络的区块生成方法、装置、计算机设备、存储介质和计算机程序产品,通过确定当前节点可调度且满足新区块生成条件的目标耗时梯度时,可从与目标耗时梯度相对应的请求存储池中获取待处理的任务执行请求,从而可执行待处理的任务执行请求所对应的任务,以得到任务执行结果。通过生成新区块,以及通过确定区块树中每条区块链上最新上链的区块的标识,可基于任务执行结果和每条区块链上最新上链的区块的标识,生成指向各最新上链区块的标识,如此,便将新区块与各最新上链的区块相关联,使得后续当修改了区块树上某一区块中的数据,依旧需要对区块树中的其余区块中的数据依次进行修改后才会生效,进而提升了数据的安全性。通过生成新区块的标识,可将携带有标识的新区块发送至各其余节点进行共识,并在共识通过后,可认为各其余节点对新区块的验证已达成一致,此时再将新区块增加至区块树中,可提升在区块树中增加新区块的安全性。
由于区块链网络中的多个节点均可按照上述方式进行新区块的生成,因此,多个节点可并行的生成新区块,相比于传统的在一个时间点下只有一个节点能够生成新区块,本申请的并行产生新区块方案能够大大提升新区块的生成效率,且缓解了传统方案中单一节点产生新区块的压力。此外,由于对于一个节点而言,当该节点具有多个目标耗时梯度时,该节点也可并行生成各目标耗时梯度各自对应的新区块,进一步提升了新区块的生成效率。
附图说明
图1为一个实施例中基于区块链网络的区块生成方法的应用环境图;
图2为一个实施例中区块链网络的示意图;
图3为一个实施例中基于区块链网络的区块生成方法的流程示意图;
图4为一个实施例中区块树的示意图;
图5为另一个实施例中区块链网络的示意图;
图6为一个实施例中节点所包含模块的示意图;
图7为一个实施例中任务执行请求重新存储的示意图;
图8为一个实施例中发送新区块的示意图;
图9为一个实施例中存储任务执行请求的示意图;
图10为另一个实施例中存储任务执行请求的示意图;
图11为一个具体实施例中基于区块链网络的区块生成方法的流程示意图;
图12为另一个具体实施例中基于区块链网络的区块生成方法的流程示意图;
图13为一个实施例中基于区块链网络的区块生成装置的结构框图;
图14为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的基于区块链网络的区块生成方法,可以应用于如图1所示的应用环境中。其中,区块链网络包括当前节点102和除当前节点之外的其余节点104。当前节点102通过网络与其余节点104进行通信。当前节点102可确定当前可调度且满足新区块生成条件的目标耗时梯度,从与目标耗时梯度相对应的请求存储池中获取待处理的任务执行请求,并响应于该任务执行请求,执行相应的任务,得到任务执行结果。当前节点生成新区块,并基于该任务执行结果和区块树中最新上链的各区块的标识,生成与新区块对应的标识,将携带有标识的新区块发送至其余节点104进行共识,并在共识通过后,将新区块增加至区块树中。其中,区块链网络中的节点可以但不限于是终端或者服务器。终端可以是各种台式计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
需要说明的是,本申请中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。除非上下文另外清楚地指出,否则单数形式“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。本申请各实施例中提及的“多个”或“多份”等的数量均指代“至少两个”的数量,比如,“多个”指“至少两个”,“多份”指“至少两份”。
值的注意的是,本申请涉及区块链技术,本发明实施例涉及的区块链网络可以为基于分布式系统而生成的网络。参见图2,图2是本发明实施例提供的分布式系统应用于区块链网络的一个可选的结构示意图,由区块链网络由多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端形成,节点之间形成组成的点对点(Peer ToPeer)网络,点对点协议是一个运行在传输控制协议(TCP,Transmission ControlProtocol )协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。区块链网络中各节点的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
值得注意的是,本申请还涉及云技术,比如,本申请中的节点可以为提供云计算服务的云服务器。云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
在一个实施例中,如图3所示,提供了一种基于区块链网络的区块生成方法,以该方法应用于图1中的当前节点为例进行说明,包括以下步骤:
步骤302,确定当前节点可调度且满足新区块生成条件的目标耗时梯度。
其中,当前节点为区块链网络中的节点。区块链网络是指包括多个节点的网络,其中,多个节点可共同维护一颗区块树,多个节点中的每个节点也可分别存储有一颗相同的区块树。区块树包括多条区块链,每条区块链对应于一个耗时梯度。比如,参考图4,区块链0可对应于梯度0,区块链1可对应于耗时梯度1,区块链2可对应于梯度2。耗时梯度表征任务的执行耗时,比如,对于梯度0,其表征执行任务的耗时在0至10分钟;对于梯度1,其表征执行任务的耗时在10至20分钟,对于梯度2,其表征执行任务的耗时在20至30分钟等。当某个区块链与某个耗时梯度相对应时,表征执行耗时在该耗时梯度所表征的耗时区间内的任务的执行结果,存储至该区块链中。比如,当区块链0对应于梯度0时,表征在0至10分钟内执行完毕的任务的执行结果,存储至区块链0的区块中;当区块链1对应于梯度1时,表征在10至20分钟内执行完毕的任务的执行结果,存储至区块链1的区块中。区块链是信息技术领域的一种分布式账本技术,一般由共识、交易区块和状态数据存储、密码学身份安全等内容构成,由于账本是分布式存储的,而且区块是经过共识的,所以具有不可篡改、可追溯、共同维护等特征。
当前节点可为区块链网络中至少一部分节点中的每个节点,至少部分节点为具有可调度的耗时梯度的节点。节点可调度的耗时梯度是指,节点可对该耗时梯度所对应的区块链进行出块处理。比如,参考图5,区块链网络包括节点1至4,其中,节点1可调度的耗时梯度为梯度0和梯度1,节点3可调度的耗时梯度为梯度2,节点4可调度的耗时梯度为梯度3;此时,当前节点为节点1、节点3和节点4中的任意一个节点,且节点1可对梯度0所对应的区块链执行出块操作,以及可对梯度1所对应的区块链执行出块操作;节点2不可对任何区块链执行出块操作;节点3可对梯度2所对应的区块链执行出块操作;节点4可对梯度3所对应的区块链执行出块操作。出块操作是指生成相应区块链中的一个新区块。图4示出了一个实施例中区块树的示意图。图5示出了一个实施例中区块链网络的示意图。
具体地,对于当前节点而言,当前节点可确定自身可调度的耗时梯度,并从可调度的耗时梯度中筛选出满足新区块生成条件的目标耗时梯度。新区块生成条件是指可以生成新的区块的条件。该条件可根据需求自由设置,比如,针对每个可调度的耗时梯度,每隔10分钟,则可认为当前节点可以生成一个与所针对的可调度的耗时梯度相对应的新区块,因此,当到达10分钟时,则可认为满足了新区块生成条件。
在其中一个实施例中,在当前节点所确定的目标耗时梯度可以有多个,比如,在当前节点可调度梯度1、梯度2和梯度3,且梯度1和梯度2均满足新区块生成条件时,则确定梯度1和梯度2均为目标耗时梯度。
步骤304,从与目标耗时梯度对应的请求存储池中获取待处理的任务执行请求,并执行待处理的任务执行请求对应的待执行任务,得到任务执行结果;待执行任务的执行耗时,与目标耗时梯度相匹配。
参考图6,图6示出了一个实施例中节点所包含模块的示意图。对于区块链网络中的节点,节点可包括存储池模块,存储池模块包括每个可调度的耗时梯度各自对应的请求存储池。比如,当节点1可调度的耗时梯度为梯度0和梯度1时,则节点1中的存储池模块包括与梯度0对应的请求存储池0,以及包括与梯度1对应的请求存储池1。每个可调度的耗时梯度各自对应的请求存储池中存储有执行耗时与相应可调度的耗时梯度相匹配的任务执行请求。比如,在上述举例中,当梯度0表征执行任务的耗时在0至10分钟时,对于请求存储池0中存储的任务执行请求,该任务执行请求所对应的任务的执行耗时在0至10分钟内。当梯度1表征执行任务的耗时在10至20分钟时,对于请求存储池1中存储的任务执行请求,该任务执行请求所对应的任务的执行耗时在10至20分钟内。任务执行请求是指用于请求执行某个任务的请求,比如,任务执行请求可为对模型进行训练的请求,相应的,任务执行请求所对应的任务为需要执行的具体任务,比如,任务执行请求所对应的任务为对模型进行训练这一项具体任务。
具体地,当确定目标耗时梯度时,当前节点可从与目标耗时梯度相对应的请求存储池中获取一个或者多个任务执行请求,并将获取的任务执行请求称作待处理的任务执行请求。其中,请求存储池是指存储在区块链网络中尚未执行的任务执行请求的缓冲区。比如,当梯度1和梯度2均为目标耗时梯度时,则当前节点可从与梯度1相对应的请求存储池中获取一个或者多个待处理的任务执行请求,以及可从与梯度2相对应的请求存储池中获取一个或者多个待处理的任务执行请求。
在其中一个实施例中,当前节点可确定最大可执行交易数量,并从与目标耗时梯度相对应的请求存储池中获取最大可执行交易数量个任务执行请求;当请求存储池存储的任务执行请求的数量小于最大可执行交易数量时,当前节点从请求存储池中获取全部的任务执行请求,并将获取的任务执行请求作为待处理的任务执行请求。
步骤306,创建新区块,确定区块树中每条区块链上最新上链的区块的标识。
步骤308,根据任务执行结果、区块树中每条区块链上最新上链的区块的标识,生成新区块的标识。
其中,最新上链的区块是指最新增加至区块链中的区块。当节点生成一个区块时,该区块还并未增加至区块链中,只有当该区块完成共识后,节点才会将该区块增加至区块链上。
具体地,当前节点可创建新区块,并确定区块树中每条区块链上最新上链的区块的标识。比如。参考图4,当与梯度0对应的区块链上最新上链的区块为区块9,与梯度1对应的区块链上最新上链的区块为区块6,与梯度2对应的区块链上最新上链的区块为区块7时,当前节点可确定区块6、区块7和区块9的标识。其中,区块的标识是指唯一标识一个区块的信息,该标识具体可为区块哈希。进一步地,当确定区块树中每条区块链上最新上链的区块的标识后,当前节点便可根据任务执行结果和最新上链的区块的标识,生成新区块的标识。比如,当前节点可对任务执行结果和各最新上链的区块的标识进行哈希运算,以得到新区块的标识。
在其中一个实施例中,区块链网络中的每个节点均存储有一颗区块树,其中,各节点存储的区块树是一致的,因此,当前节点可确定自身存储的区块树,并从自身存储的区块树中确定每条区块链上最新上链的区块。
由于是基于每条区块链上最新上链的区块的标识来生成新区块的标识,因此,新区块会指向每条区块链上最新上链的区块,因此当修改了区块树上某一区块中的数据,依旧需要对区块树中的其余区块中的数据依次进行修改后才会生效,从而提升了数据的安全性。示例性的,新区块的标识具体可为区块哈希,当每条区块链上最新上链的区块为区块2、区块4和区块5,且区块2的标识为区块哈希A,区块4的标识为区块哈希B,区块5的标识为区块哈希D时,则当前节点可对任务执行结果、区块哈希A、区块哈希B和区块哈希D进行哈希运算,以得到新区块的区块哈希。
步骤310,将携带有标识的新区块发送至区块链网络除当前节点之外的其余节点进行共识,并在共识通过后将新区块添加至区块树中与目标耗时梯度对应的区块链上。
具体地,当前节点可将携带有标识的新区块发送至区块链网络中的各其余节点。比如,当前节点可将携带有标识的新区块发送至区块链网络中的距离自身最近的节点A,从而节点A可再次将该新区块发送至区块链网络中距离自身最近的节点B,依次类推,直至各个节点均接收到新区块。各其余节点可对该新区块进行共识,得到共识结果,当共识结果表征共识通过时,则当前节点将该新区块正式添加至区块树中与目标耗时梯度对应的区块链上。容易理解地,其余节点也可在共识通过后,将新区块正式增加至自身存储的区块树中,如此,便可使得各节点存储的区块树一致。其中,共识是指在区块链网络中,通过一定的算法和规则,让每个节点对区块的生成和验证达成一致,保证整个网络的一致性和安全性。共识具备去中心化、可靠性、防篡改等特点,是区块链技术的核心之一。
示例性的,当梯度1和梯度2均为目标耗时梯度时,当前节点可生成与梯度1对应的新区块1,以及生成与梯度2对应的新区块2,从而在新区块1通过共识后,将新区块1增加至区块树中与梯度1对应的区块链上1,比如,可将新区块1增加至区块链1中最新上链的区块之后,容易理解地,当将区块1增加至区块链1后时,则新区块1变成了区块链1中最新上链的区块;在新区块2通过共识后,将新区块2增加至区块树中与梯度2对应的区块链上,比如,可将新区块2增加至区块链2中最新上链的区块之后。
上述基于区块链网络的区块生成方法中,通过确定当前节点可调度且满足新区块生成条件的目标耗时梯度时,可从与目标耗时梯度相对应的请求存储池中获取待处理的任务执行请求,从而可执行待处理的任务执行请求所对应的任务,以得到任务执行结果。通过生成新区块,以及通过确定区块树中每条区块链上最新上链的区块的标识,可基于任务执行结果和每条区块链上最新上链的区块的标识,生成指向各最新上链区块的标识,如此,便将新区块与各最新上链的区块相关联,使得后续当修改了区块树上某一区块中的数据,依旧需要对区块树中的其余区块中的数据依次进行修改后才会生效,进而提升了数据的安全性。通过生成新区块的标识,可将携带有标识的新区块发送至各其余节点进行共识,并在共识通过后,可认为各其余节点对新区块的验证已达成一致,此时再将新区块增加至区块树中,可提升在区块树中增加新区块的安全性。
由于区块链网络中的多个节点均可按照上述方式进行新区块的生成,因此,多个节点可并行的生成新区块,相比于传统的在一个时间点下只有一个节点能够生成新区块,本申请的并行产生新区块方案能够大大提升新区块的生成效率,且缓解了传统方案中单一节点产生新区块的压力。此外,由于对于一个节点而言,当该节点具有多个目标耗时梯度时,该节点也可并行生成各目标耗时梯度各自对应的新区块,进一步提升了新区块的生成效率。
在其中一个实施例中,确定当前节点可调度且满足新区块生成条件的目标耗时梯度,包括:确定当前节点可调度的耗时梯度;针对当前节点可调度的每个耗时梯度,确定与所针对的可调度的耗时梯度对应的触发器;当触发器指示针对的可调度的耗时梯度满足新区块生成条件时,则将针对的可调度的耗时梯度作为目标耗时梯度;在共识通过后将新区块添加至区块树中与目标耗时梯度对应的区块链上之后,上述方法还包括:按照预设信息更新规则,更新触发器。
具体地,当前节点可通过触发器来确定目标耗时梯度。对于当前节点可调度的每个耗时梯度,均可设置一个触发器。比如,在当前节点可调度的耗时梯度为梯度0和梯度1时,则针对梯度0可设置一个触发器,以及针对梯度1可设置一个触发器。当前节点可基于各可调度的耗时梯度各自对应的触发器,来确定各可调度的耗时梯度是否满足新区块生成条件,比如,当触发器为定时器时,则可将达到定时器所定时的时间的耗时梯度,作为满足新区块生成条件的目标耗时梯度。当生成与目标耗时梯度相对应的新区块,且将新区块增加至区块树后,则对触发器进行更新,比如,将定时器中的时间进行更新。
在其中一个实施例中,当触发器指示针对的可调度的耗时梯度满足新区块生成条件时,则将针对的可调度的耗时梯度作为目标耗时梯度,包括:在触发器为定时器,且定时器记录的时间从初始时间变更至目标时间时,确定针对的可调度的耗时梯度为目标耗时梯度;按照预设信息更新规则,更新触发器记载的信息,包括:将定时器记录的时间重新调整为初始时间。
具体地,触发器具体可为一个定时器,通过该定时器可使得区块链每隔一定时间生成一个区块。比如,约定每隔大约10分钟生成一个新区块,此时可将该触发器设置为一个倒计时10分钟的定时器,该定时器在上一个新区块落块时开启,并在当前新区块落块时关闭。比如,对于梯度1所对应的定时器而言,该定时器在上一个新区块落于与梯度1对应的区块链时开启,并在开启时将该定时器中的时间设置为10分钟。进一步地,当前节点确定每个可调度的梯度各自对应的定时器是否从初始时间变更至目标时间时,比如,对于与梯度1对应的定时器而言,当前节点确定该定时器记载的时间是否从10分钟变为0,若从10分钟变为0时,则表征对于与梯度1对应的区块链而言,距离上一个新区块落块已过去10分钟,此时应该生成一个与梯度1对应的新区块,从而梯度1便满足了新区块生成条件,进而当前节点将该梯度1作为目标耗时梯度。
由于定时器在上一个新区块落块时开启,并在当前新区块落块时关闭,因此,当将相应新区块添加至区块树中与相应目标耗时梯度对应的区块链后,当前节点可将相应定时器记录的时间重新调整为初始时间。比如,在当前节点生成与梯度1对应的新区块,且将该新区块增加至与梯度1对应的区块链后,则当前节点可将与梯度1对应的定时器进行初始化,使得与梯度1对应的定时器所记载的时间从0变为10分钟,进而可基于该定时器继续进行定时。
在其中一个实施例中,定时器所定时的时间可根据需求自由设置,较短的定时时间意味着更频繁地产生新区块,这增加了网络的负担和节点间的信息传输频率。为了维持区块链网络的稳定性和安全性,需要保证节点之间能够及时同步数据,避免分叉等问题,因此,需要设置一个合理的定时时间,从而基于合理设定的定时时间平衡系统的性能与安全之间的关系,确保区块链网络的稳健运行。
上述实施例中,通过将触发器设置为定时器,可基于该定时器控制各可调度的耗时梯度各自对应的区块链每隔一定时间增加一个新区块,从而确保区块链网络的稳健运行。
在其中一个实施例中,当触发器记载的信息指示针对的可调度的耗时梯度满足新区块生成条件时,则将针对的可调度的耗时梯度作为目标耗时梯度,包括:在触发器为计数器,且计数器用于记载与针对的可调度的耗时梯度相对应的请求存储池中的请求数量时,判断计数器记载的请求数量是否达到目标数量;当计数器记载的请求数量达到目标数量,则确定针对的可调度的耗时梯度为目标耗时梯度;按照预设信息更新规则,更新触发器记载的信息包括:根据当前时刻与针对的可调度的耗时梯度相对应的请求存储池中的请求数量,对计数器记录的请求数量进行更新。
具体地,触发器可为一个计数器,该计数器用于记录相应请求存储池中存储的请求的数量。比如,在当前节点可调度的耗时梯度为梯度0和梯度1,且与梯度0对应的请求存储池为请求存储池0,与梯度1对应的请求存储池为请求存储池1时,则与梯度0对应的计数器可用于记录请求存储池0中存储的请求的数量;与梯度1对应的计数器可用于记录请求存储1中存储的请求的数量。进一步地,针对各可调度的耗时梯度而言,当前节点可判断与所针对的可调度的耗时梯度相对应的计数器记录的请求数量是否达到目标数量,若达到目标数量,则可认为与所针对的可调度的耗时梯度相对应的请求存储池中存储的请求的数量已达到目标值,此时,将所针对的耗时梯度作为目标耗时梯度。比如,当前节点可判断与梯度1相对应的计数器记录的请求数量是否达到目标数量,若达到目标值,则可确定与梯度1对应的请求存储池1中存储了目标数量个请求,此时,将梯度1作为目标耗时梯度。相应的,若未达到目标数量,则暂时不将梯度1作为目标耗时梯度。
进一步地,由于计数器在上一个新区块落块时开启,并在当前新区块落块时关闭,因此,当将相应新区块添加至区块树中与相应目标耗时梯度对应的区块链后,当前节点可将根据相应请求存储池中的请求数量重新调整相应计数器所记载的数据。比如,在当前节点生成与梯度1对应的新区块,且将该新区块增加至与梯度1对应的区块链后,则当前节点可确定与梯度1所对应的请求存储池1中剩余的请求数量,并将与梯度1对应的计数器所记载的数据调整为剩余的请求数量。
上述实施例中,通过将触发器设置为计数器,可每当请求存储池中存储的请求数量达到目标数量时,便进行请求的提取,以基于提取的请求生成新区块,如此,便可平稳地消耗请求存储池中的请求,减少了因请求存储池中存储的请求过多而来不及处理的概率,进而提升了区块链网络的稳定性。
在其中一个实施例中,执行待处理的任务执行请求对应的任务,包括:确定与目标耗时梯度相适配的预配置资源量,并通过预配置资源量的资源执行待处理的任务执行请求对应的待执行任务;确定目标耗时梯度所表征的目标耗时,并当待执行任务未在目标耗时内执行完毕时,确定待执行任务执行失败;将待处理的任务执行请求再次存储至与目标耗时梯度相对应的请求存储池。
具体地,针对不同的耗时梯度,不仅任务执行耗时限制不同,而且资源配额也不同。资源配额也称作预配置资源量是限制某个进程对资源使用的一个总量限制,比如,对内存、CPU(中央处理器)、Pod(容器)数量的限制。当从相应的请求存储池中拉取待处理的任务执行请求后,当前节点可调用相应的进程,以使该进程通过与目标耗时梯度相对应的预配置资源量的资源执行待处理的任务执行请求所对应的待处理任务。比如,在目标耗时梯度为梯度1,且与梯度1相对应的预配置资源量为20%内存、30%CPU,当从与梯度1对应的请求存储池中拉取待处理的任务执行请求1时,则当前节点可调用进程,以使进程通过20%内存和30%CPU来执行待处理的任务执行请求1所对应的待处理任务。
进一步地,由于针对不同的耗时梯度,可设置不同的任务执行耗时,因此,当前节点可根据耗时梯度与执行任务的耗时之间的预设对应关系,确定目标耗时梯度所对应的耗时,记作目标耗时。比如,当对应关系中记载有:梯度0与0至10分钟相对应;梯度1与10至20分钟相对应。在目标耗时梯度为梯度1时,则可认为梯度1所表征的目标耗时为10至20分钟。进一步地,当前节点可确定进程是否在该目标耗时内执行完待处理任务,当进程在目标耗时内执行完该待执行任务时,则确定待执行任务执行成功,此时可得到任务执行结果。当进程未在目标耗时内执行完该待执行任务时,则可认为待执行任务执行超时,此时确定待执行任务执行失败。当待执行任务执行失败时,当前节点可将对应该待执行任务的任务执行请求重新存储至与目标耗时梯度相对应的请求存储池中,以便下次再提取出该任务执行请求,并再次执行该待执行任务。
示例性的,在目标耗时梯度为梯度1,且提取出的待处理的任务执行请求为任务执行请求1,与梯度1对应的目标耗时为10至20分钟时,当前节点可判断任务执行请求1所对应的待执行任务是否在10至20分钟内执行完毕,若未在10至20分钟内执行完毕时,则认为该待执行任务执行失败,从而当前节点将任务执行请求1重新放入与梯度1对应的请求存储池中。
上述实施例中,由于对于目前的区块链项目而言,在区块调度执行一整个区块的交易时,通常有个最大耗时时间,用来限制待执行任务的执行时长,防止耗时过长导致新区块长时间无法产出。但在实际的应用中,待执行任务通常还包括复杂的计算,如机器学习模型训练、大数据计算,在这种前提下,若为整个区块链项目设置的最大耗时时间较小,则将无法执行这些待执行任务,然而一味地调大最大耗时时间也会导致异常的高耗时任务难以被检测出来,影响出块效率。而本申请通过为每个耗时梯度设置一个执行任务的耗时,对于资源转换这种简单计算的任务,通过低耗时梯度来进行管理,对于机器学习模型训练这种复杂计算的任务,通过高耗时梯度来进行管理,如此,便实现了对不同执行耗时的待执行任务分梯度进行管理,大大提升了任务管理的精细程度,使得不同耗时梯度下,均能够识别到异常耗时的任务。
此外,通过为不同的耗时梯度设置不同的预配置资源量,使得对应于复杂计算的耗时梯度能够分配到更多的资源,进而基于更多的资源执行更为复杂的任务,如此,使得当前节点内有限的资源能够得到合理的配置。
在其中一个实施例中,上述方法还包括:确定待执行任务执行失败的次数;在次数大于或等于预设次数阈值时,确定更新耗时梯度;更新耗时梯度表征的耗时大于目标耗时梯度表征的耗时;确定可调度更新耗时梯度的节点,并将待处理的任务执行请求发送至可调度更新耗时梯度的节点;发送的待处理的任务执行请求,用于触发可调度更新耗时梯度的节点,将待处理的任务执行请求存储至与更新耗时梯度相对应的请求存储池。
具体地,当待执行任务执行失败时,当前节点可确定截止至当前为止该待执行任务执行失败的次数。当次数大于或等于预设次数阈值时,可认为需要更长的时间来执行该待执行任务,因此,将对应该待执行任务的待处理的任务执行请求重新放回至目标耗时梯度是不合适的。当前节点确定一个更新耗时梯度,该更新耗时梯度所表征的任务执行耗时大于目标耗时梯度所表征的任务执行耗时。比如,参考图7,在目标耗时梯度为梯度1,其表征任务执行耗时10至20分钟,且从梯度1提取出的待处理的任务执行请求1所对应的待处理任务为待处理任务1,待处理任务1在截止至当前为止执行失败的次数大于预设次数阈值时,则当前节点将表征任务执行耗时20至30分钟的梯度2,作为更新耗时梯度。
进一步地,当前节点确定可调度该更新耗时梯度的节点,并将该节点称作可调度节点,当前节点将对应该待执行任务的待处理的任务请求发送至可调度节点。比如,在上述举例中,在确定可调度梯度2的节点为节点3时,当前节点可将对应待处理任务1的任务执行请求1发送至节点3。进一步地,当可调度节点接收到当前节点发送的待处理的任务执行请求时,可调度节点将其存放至与更新耗时梯度相对应的请求存储池中。比如,在上述举例中,节点3将对应待执行任务1的任务执行请求1存储至与梯度2相对应的请求存储池。图7示出了一个实施例中任务执行请求重新存储的示意图。
在其中一个实施例中,在将处理的任务执行请求发送至可调度节点的过程中,当前节点可在该待处理的任务执行请求中携带有更新梯度的耗时梯度信息,从而当可调度节点接收到该待处理的任务执行请求时,可基于携带的耗时梯度信息,确定应该将待处理的任务执行请求存储至的请求存储池。
上述实施例中,在待执行任务多次执行失败时,通过对应该待执行任务的任务执行请求存放至更高梯度的请求存储池中,可使得后续能够基于更长的任务耗时来执行该待执行任务,进而提升了任务执行的成功率。
在其中一个实施例中,将携带有标识的新区块发送至区块链网络除当前节点之外的其余节点进行共识,包括:将携带有标识的新区块在区块链网络中进行广播;广播的携带有标识的新区块,用于触发除当前节点之外的其余节点对携带有标识的新区块进行投票式共识,得到共识结果。
具体地,当生成新区块后,当前节点可将生成的新区块发送至区块链网络中的除自身之外的其余节点。以使其余节点对新区块进行共识,得到共识结果。当前节点可通过广播的形式在区块链网络中传输新区块,进而当其余节点接收到新区块时,可基于新区块生成条件以及其余预设的验证条件对新区块进行验证,并根据投票结果,对该新区块进行投票,以通过投票的方式来确定是否同意将该新区块增加至区块树中。当前节点可根据其余节点的投票结果,确定共识结果,并在共识结果表征共识通过后,再将新区块增加至区块树中。
在其中一个实施例中,参考图8,前节点可将携带有标识的新区块发送至区块链网络中的距离自身最近的节点,从而距离自身最近的节点可再次将该新区块发送至区块链网络中距离自身最近的节点,依次类推,直至各个节点均接收到新区块。图8示出了一个实施例中发送新区块的示意图。
在其中一个实施例中,共识结果包括各其余节点各自的投票结果;每个投票结果为相应其余节点对携带有标识的新区块进行正确性验证而得到的结果;在投票结果为第一结果的情况下,投票结果表征相应其余节点确认携带有标识的新区块验证通过;在投票结果为第二结果的情况下,投票结果表征相应其余节点确认携带有标识的新区块验证未通过;在第一结果的数量大于第二结果的数量时,共识结果为表征携带有标识的新区块通过共识的结果。
具体地,当其余节点接收到携带有标识的新区块时,其余节点可验证该新区块的生成是否符合预设生成条件,比如,验证该新区块生成的合法性。之后,其余节点还可对新区块的标识进行解码,以得到任务执行结果,并验证任务执行结果的合法性。当新区块以及新区块的标识均验证通过后,其余节点即可进行投票,得到投票结果。投票结果可为第一结果或者可为第二结果,第一结果表征确认携带有标识的新区块验证通过,第二结果表征携带有标识的新区块验证未通过。其余节点可将投票结果发送至区块链中的主节点,从而主节点可基于接收到的投票结果后,判断第一结果的数量是否大于第二结果的数量,当时第一结果的数量大于第二结果的数量时,表征大部分的节点均对携带有标识的新区块验证通过,此时,可确认共识结果为表征携带有标识的新区块通过共识的结果。相应的,在第一结果的数量小于或等于第二结果的数量时,表征大部分节点对携带有标识的新区块验证未通过,此时,可确认共识结果为表征携带有标识的新区块未通过共识的结果。
上述实施例中,通过进行投票共识,可在大部分节点均验证通过后,再确认新区块通过共识,从而提升了共识结果的准确性。
在其中一个实施例中,上述方法还包括:当接收到待存储的任务执行请求时,获取待存储的任务执行请求携带的耗时梯度信息;当区块链网络中存在与耗时梯度信息相对应的耗时梯度时,确定区块链网络中可调度与耗时梯度信息相对应的对应耗时梯度的目标节点;将待存储的任务执行请求发送至目标节点;其中,发送的待存储的任务执行请求,用于触发目标节点将待存储的任务执行请求存储至与对应耗时梯度相对应的请求存储池。
具体地,当前节点还可接收待存储的任务执行请求,该任务执行请求可以是其余节点发送的,也可以是用户发送的。待存储的任务执行请求是指待存储至请求存储池的请求。待存储的任务执行请求携带有耗时梯度信息。耗时梯度信息表征了该待存储的任务执行请求所对应的任务执行所需耗时。当前节点可从待存储的任务执行请求中提取出耗时梯度信息,并判断区块链网络中是否存在有与该耗时梯度信息相对应的耗时梯度。比如,参考图9,在耗时梯度信息表征执行待存储的任务执行请求所对应的任务所需的耗时为10至20分钟,且区块链网络中的梯度1表征任务执行耗时10至20分钟时,则确认区块链网络中存在与该耗时梯度信息对应的耗时梯度,并将该耗时梯度称作对应耗时梯度。
当前节点确定区块链网络中可调度对应耗时梯度的目标节点,比如,在上述举例中,当前节点可确定可调度梯度1的节点,并将可调度梯度1的节点作为目标节点。当前节点将该待存储的任务执行请求发送至目标节点,从而当目标节点接收到当前节点发送的待存储的任务执行请求时,目标节点便可基于待存储的任务执行请求所携带的耗时梯度信息,将该待存储的任务执行请求存储至与耗时梯度信息相对应的请求存储池,比如,将该待存储的任务执行请求存储至与梯度1对应的请求存储池。图9示出了一个实施例中存储任务执行请求的示意图。
在其中一个实施例中,在当前节点确定可调度对应耗时梯度的节点为自身时,当前节点则不执行发送操作,直接将该待存储的任务执行请求存储至与对应耗时梯度相对应的请求存储池。
在其中一个实施例中,当用户期望区块链网络中的节点能够执行一个模型训练任务时,用户即可通过终端生成一个用于进行模型训练的待存储的任务执行请求,并通过终端将该待存储的任务执行请求发送至当前节点,从而当前节点即可将该待存储的任务执行请求进行存储,或者,当前节点可将该待存储的任务执行请求发送至其他节点进行存储。
在其中一个实施例中,当用户的终端将待存储的任务执行请求发送至当前节点之前,该终端还可预估该待存储的任务执行请求所对应的任务的执行耗时,得到梯度耗时信息,并将携带有梯度耗时信息的待存储的任务执行请求发送至当前节点。预估执行耗时的方式可根据需求自由设置,比如,终端可判断待存储的任务执行请求所对应的任务的类型,得到任务类型,并根据任务类型与执行耗时之间的对应关系,确定耗时梯度信息。任务类型与执行耗时之间的对应关系,可根据在历史时间段内执行的任务的耗时得到。比如,可收集区块链网络在历史时间段内执行的任务,并确定各任务的任务类型和执行耗时,将任务类型与执行耗时进行对应,以得到任务类型与执行耗时之间的对应关系。
上述实施例中,在获取得到待存储的任务执行请求时,通过提取待存储的任务执行请求中的耗时梯度信息,可确定区块链网络中是否存在与该耗时梯度信息相对应的目标梯度,从而将该待存储的任务执行请求发送至可调度该目标梯度的目标节点,如此,目标节点便可将其存储至相应的请求存储池中以便在到达新区块生成条件时,从请求存储池中提取出该任务执行请求进行执行,得到任务执行结果,并将任务执行结果存储至新区块中,如此,便实现了新区块的生成以及任务执行结果的上链。
在其中一个实施例中,上述方法还包括:当区块链网络中不存在与耗时梯度信息相对应的耗时梯度时,将待存储的任务执行请求发送至区块链网络中的主节点;其中,发送的待存储的任务执行请求,用于触发主节点创建与耗时梯度信息相对应的对应耗时梯度,并将创建的耗时梯度在区块链网络中的各节点之间进行广播;发送的待存储的任务执行请求,还用于触发主节点将待存储的任务执行请求转发至区块链网络中的空闲节点,以使空闲节点作为可调度对应耗时梯度的节点,并将待存储的任务执行请求存储至与对应耗时梯度对应的请求存储池。
具体地,当从待存储的任务执行请求中提取出耗时梯度信息,且区块链网络中不存在与该耗时梯度信息相对应的耗时梯度时,则当前节点将该待存储的任务执行请求发送至区块链网络中的主节点。当主节点接收到待存储的任务执行请求时,主节点创建与该耗时梯度信息相对应的对应耗时梯度,并将创建的对应耗时梯度在区块链网络中进行广播,以使区块链网络中的各节点均得知已创建有一个与耗时梯度信息相对应的新的耗时梯度。进一步地,主节点可查看区块链网络中的空闲节点,并将确定的空闲节点作为可调度对应耗时梯度的节点。比如,参考图10,当主节点创建的与耗时梯度信息相对应的对应耗时梯度为梯度5时,则主节点可确定区块链网络中负载最小的节点作为空闲节点,并将空闲节点作为可调度梯度5的节点。主节点可将空闲节点作为可调度对应耗时梯度的节点这一结果在区块链网络中进行广播,以使区块链网络的节点可得知空闲节点可调度新创建的耗时梯度。比如,在上述举例中,主节点可将空闲节点可调度梯度5这一结果在区块链网络中进行广播,从而区块链网络中的节点可将空闲节点能够调度梯度5这一结果进行存储。
进一步地,主节点可将待存储的任务执行请求发送至空闲节点,当空闲节点接收到主节点发送的待存储的任务执行请求时,空闲节点根据待存储的任务执行请求存储至与对应耗时梯度相对应的请求存储池中。比如,在上述举例中,当空闲节点确认自身可调度新创建的梯度5时,则空闲节点可创建与梯度5相对应的请求存储池,并将该待存储的任务执行请求存储至与梯度5相对应的请求存储池中。图10示出了另一个实施例中存储任务执行请求的示意图。
在其中一个实施例中,主节点可将负载最低的节点作为空闲节点,或者,主节点可将负载低于预设负载阈值的任一个节点作为空闲节点。
上述实施例中,通过将空闲节点作为可调度新创建耗时梯度的节点,可使得区块链网络中的各节点达到负载均衡,从而提升了区块链网络的稳定性。
在其中一个实施例中,在获取待存储的任务执行请求携带的耗时梯度信息之前,上述方法还包括:获取发送待存储的任务执行请求的目标对象的对象签名;对象签名是通过与目标对象相对应的私钥进行加密得到;获取与私钥相匹配的公钥,并通过公钥对对象签名进行验证;获取待存储的任务执行请求携带的耗时梯度信息,包括:在对对象签名验证通过的情况下,获取待存储的任务执行请求携带的耗时梯度信息。
具体地,在当前节点提取待存储的任务执行请求所携带的耗时梯度信息之前,当前节点还可获取发送待存储的任务执行请求的目标对象的对象签名,其中,对象签名是目标对象通过私钥进行加密得到的。比如,在将待存储的任务执行请求上传至当前节点之前,用户可通过私钥对签名进行加密,得到用户签名,并将携带有用户签名的待存储的任务执行请求上传至当前节点,从而当前节点可接收到待存储的任务执行请求时,可提取出该请求所携带有用户签名。
进一步地,用户可预先将与私钥配对的公钥发送至区块链网络中的各节点,因此,当前节点可获取与私钥相匹配的公钥,并通过公钥对获取得到的对象签名进行验证,比如,当前节点可通过公钥对对象签名进行解密,在解密成功后,可认为验证通过,此时当前节点再从待存储的任务执行请求中提取出耗时梯度信息。相应的,在解密失败后,可认为验证未通过,此时当前节点向目标对象返回验证失败的结果,比如,向用户返回验证失败的结果。
本实施例中,通过在验证成功后再获取耗时梯度信息,可使得耗时梯度信息的获取更为安全,从而提升了区块链网络的安全性。
在其中一个实施例中,为了更好地理解本申请,下面对本申请的整体流程进行说明。参考图6,区块链中的节点包括如图6所示的模块:
网络模块:为区块链节点对外进行网络交互的模块;
鉴权模块:为区块链节点对请求进行权限验证的模块;
鉴权模块包括签名验证模块:为区块链节点对请求的签名进行验证的模块;
鉴权模块包括权限验证模块:为区块链节点对请求者身份的权限进行判断,即是判断请求者否有权限进行请求操作的模块;
存储池模块:为缓存任务执行请求的模块;
存储池模块包括梯度耗时计算模块:为对任务的梯度进行计算的模块;
存储池模块包括请求存储池,不同的请求存储池对应不同耗时梯度;
区块调度模块:负责从请求存储池获取批量任务处理请求并生成新区块的模块;
区块调度模块包括交易分发调度模块:用于将区块中的任务执行请求进行调度,分发到虚拟机模块进行执行的模块;
区块调度模块包括多梯度区块生成模块:用于生成多耗时梯度的区块链数据结构;
虚拟机模块:为负责执行待处理任务的模块;
虚拟机模块包括合约仓库:为用于存储所有合约的仓库;
虚拟机模块包括合约进程:为实际执行待处理任务的进程,持续运行;
共识模块:为用于多节点进行共识的模块;
共识模块包括梯度子共识模块,每个耗时梯度的区块链都有一个共识模块,多耗时梯度并行运行;
存储模块:为用于存储实际数据的模块;
存储模块包括区块账本:为用于存储区块账本数据的模块;
存储模块包括状态数据模块:为存储区块链最新状态数据的模块。
参考图11,步骤1101,启动区块链网络。步骤1102,区块链网络中的U盾多个节点经过共识确认默认的主节点。步骤1103,用户向当前节点发送待存储的任务执行请求。步骤1104,当前节点中的鉴权模块对待存储的任务执行请求进行用户签名的验证。步骤1105,验证是否成功?若是则跳转至步骤1107;若否则跳转至步骤1106。步骤1106,鉴权模块向用户返回签名验证失败的结果。步骤1107,鉴权模块对用户权限进行验证以判定用户是否具有权限进行上述请求。步骤1108,验证是否成功?若是则跳转至1110;若否则跳转至1109。步骤1109,鉴权模块向用户返回权限验证失败的结果。步骤1110,存储池模块接收待存储的任务执行请求。步骤1111,存储池模块提取待存储的任务执行请求的合约附带耗时梯度信息。步骤1112,存储池模块判断当前的区块链网络是否存在与耗时梯度信息相对应的目标耗时梯度?若是则跳转至步骤1118;否则跳转至步骤1113。步骤1113,当前节点将待存储的任务执行请求转发至主节点。步骤1114,主节点获取各个节点的当前状态。步骤1115,主节点选择资源利用率较小的空闲节点,并将该空闲节点称作接收节点。步骤1116,主节点创建与目标耗时梯度信息对应的目标耗时梯度并告知所有节点。步骤1117,主节点将待存储的任务执行请求转发至接收节点,以使接收节点作为可调用创建的目标耗时梯度的节点,并跳转至步骤1119。步骤1118,在当前的区块链网络存在与耗时梯度信息相对应的目标耗时梯度,当前节点确定可调度该目标耗时梯度的节点,称作接收节点,当前节点将待存储的任务执行请求转发接收节点。步骤1119,接收节点的存储池模块接收待存储的任务执行请求。步骤1120,接收节点将接收到的待存储的任务执行请求存储至与目标耗时梯度对应的请求存储池。步骤1121,接收节点可并行执行所有可调度的耗时梯度的调度和出块操作。步骤1122,接收节点需要保证同一个耗时梯度的区块是串行的。步骤1123,接收节点中的区块调度模块对于不同的耗时梯度生成不同的耗时限制。步骤1124,接收节点中的虚拟机模块针对不同的耗时梯度生成不同的资源配额。步骤1125,接收节点中的虚拟机模块执行请求存储池中存储的请求所对应的待处理任务,并生成新区块。步骤1126,接收节点中的与梯度子共识模块将新区块发送至区块链网络中的其余节点以进行共识。步骤1127,共识是否通过?若是则跳转至步骤1128;若否则跳转至步骤1130。步骤1128,接收节点中的存储模块将新区块以及新区块的标识存储至账本,以在区块树中追加该新区块。步骤1129,接收节点中的存储模块将区块中的状态数据存储至状态数据库中。步骤1130,返回共识失败的结果。
下面对接收节点创建新区块的步骤进行进一步说明。参考图12,步骤1201,接收节点对自身所有可调度的耗时梯度开启一个触发器。步骤1202,每个可调度的耗时梯度上一个区块落块时开启下一个触发器。步骤1203,倒计时到达或者耗时梯度所对应的请求存储池中存储的请求数量达到节点最大执行数量时,触发器被触发。步骤1204,将触发器被触发的耗时梯度作为目标耗时梯度,并接收节点确定与目标耗时梯度相对应的请求存储池。步骤1205,该请求存储池中的请求数量是否大于节点最大可执行数量?若是,则跳转至步骤1206;若否则跳转至步骤1207。步骤1206,接收节点提取请求存储池中节点最大执行数量个请求,该最大可执行数量即为目标数量。步骤1207,接收节点提取请求存储池中的全部请求。步骤1208,接收节点的区块调度模块获取区块树中全部的最新上链的区块的哈希值。步骤1209,接收节点的区块调度模型调度分发提取的请求到虚拟机模块执行。步骤1210,虚拟机模块从合约仓库获取合约启动进程执行请求所对应的待处理任务。步骤1211,接收节点的区块调度模块将任务执行结果和全部最新上链的区块的哈希值进行哈希运算,得到新区块的哈希值。步骤1212,接收节点中的梯度子共识模块将新区块发送至其余节点进行共识。步骤1213,共识是否通过?若是则跳转至步骤1215;若否则跳转至步骤1214。步骤1214,返回共识不通过的结果。步骤1215,接收节点的存储模块将哈希值和新区块存储至账本。步骤1216,接收节点的存储模块将所有状态数据,例如用户具有的资源量等数据存储至状态数据库。
本实施例的技术关键点在于一种多梯度区块树并行产块区块链设计方案。对于目前的区块链项目而言,比如长安链,这些区块链是无法并行出块的,只能等到一个节点出块,其他节点共识结束后,才能进入下一个区块,这种情况效率很低,节点大多数的时间都在等待状态。本实施例的多梯度并行产块区块的设计方案可解决上述问题,首先,本实施例提出了与耗时梯度对应的请求存储池的概念,将一个大的请求存储池分为各耗时梯度各自对应的请求存储池,让具有不同耗时的任务执行请求进入到不同的请求存储池中,便于进行并发调度。本实施例还提出了多梯度区块共识节点分配的策略,对于不同的耗时梯度由不同的节点来调度,从而让每个节点都能生成新区块,缓解单一节点的压力,同时让出块具备多梯度并发能力。除此之外,本实施例还提出了新型的多耗时梯度区块链结构,让区块的生成不再是一条链,而是多链并行,在并发生成时通过多链哈希确保了区块的不可篡改。
本实施例还阐述了一种多梯度区块树并行产块区块链设计方案系统架构,设计了整套方案的系统架构,包括网络模块、鉴权模块、存储池模块(又称作交易池模块)、区块调度模块、虚拟机模块、共识模块和存储模块。上述系统架构是整套环境的运行基础,通过上述方案和系统架构保证了系统高效而稳定地运行。通过上述系统架构,能够保证区块链既能处理简单的合约任务,也能处理复杂的大规模的计算任务,并且都能并发执行,执行效率高,并且维持了区块链的不可篡改性。可以广泛在工业界复用。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
本申请还提供一种应用场景,该应用场景应用上述的基于区块链网络的区块生成方法。具体地,该基于区块链网络的区块生成方法在该应用场景的应用如下:
用户A至C可分别向区块链网络中的不同节点发送任务执行请求,各任务执行请求可分别为用户A发送的用以对分类模型进行训练的请求、用户B发送的用以对大量的保护数据进行加密的请求、用户C发送用以进行话费充值的请求等。由于对分类模型进行训练、对大量的保护数据进行加密以及进行话费充值这三个任务的执行耗时各不相同,因此各节点接收到任务执行请求时,可确定各任务执行请求各自对应的任务执行耗时,并基于任务执行耗时将各任务执行请求在区块链网络中进行重新分配,以使得各节点均能够接收到相匹配的任务执行请求。比如,当节点1用于执行高耗时的任务、节点2用于执行中耗时的任务、节点3用于执行低耗时的任务时,则可将对分类模型进行训练的请求发送至节点1、将对大量的保护数据进行加密的请求发送至节点2、将进行话费充值的请求发送至节点3。从而各节点可在生成新区块时,执行相应的任务执行请求所对应的任务,得到任务执行结果,比如,节点1可生成新区块,并执行对分类模型进行训练这一任务,得到任务执行结果,并将任务执行结果存储至新区块,以及当新区块共识通过后,将其存储至账本中;节点2可生成新区块,并执行对大量的保护数据进行加密这一任务,得到任务执行结果,并将任务执行结果存储至新区块,以及当新区块共识通过后,将其存储至账本中;相应的,节点3也可生成新区块,并执行话费充值这一任务,得到任务执行结果,并将任务执行结果存储至新区块,以及当新区块共识通过后,将其存储至账本中。如此,便实现了并行产出新区块,提升了新区块的产出效率。
上述应用场景仅为示意性的说明,可以理解,本申请各实施例所提供的基于区块链网络的区块生成方法的应用不局限于上述场景。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的基于区块链网络的区块生成方法的基于区块链网络的区块生成装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个基于区块链网络的区块生成装置实施例中的具体限定可以参见上文中对于基于区块链网络的区块生成方法的限定,在此不再赘述。
在一个实施例中,如图13所示,提供了一种基于区块链网络的区块生成装置1300,包括:目标耗时梯度确定模块1302、新区块生成模块1304和共识模块1306,其中:
目标耗时梯度确定模块1302,用于确定当前节点可调度且满足新区块生成条件的目标耗时梯度;
新区块生成模块1304,用于从与所述目标耗时梯度对应的请求存储池中获取待处理的任务执行请求,并执行所述待处理的任务执行请求对应的待执行任务,得到任务执行结果;所述待执行任务的执行耗时,与所述目标耗时梯度相匹配; 创建新区块,并确定所述区块树中每条区块链上最新上链的区块的标识;根据所述任务执行结果、所述区块树中每条区块链上最新上链的区块的标识,生成所述新区块的标识;
共识模块1306,用于将携带有标识的新区块发送至所述区块链网络除所述当前节点之外的其余节点进行共识,并在共识通过后将所述新区块添加至所述区块树中与所述目标耗时梯度对应的区块链上。
在其中一个实施例中,所述目标耗时梯度确定模块1302还用于确定所述当前节点可调度的耗时梯度;针对所述当前节点可调度的每个耗时梯度,确定与所针对的可调度的耗时梯度对应的触发器;当所述触发器指示所述针对的可调度的耗时梯度满足新区块生成条件时,则将所述针对的可调度的耗时梯度作为目标耗时梯度;按照预设信息更新规则,更新所述触发器。
在其中一个实施例中,所述目标耗时梯度确定模块1302还用于在所述触发器为定时器,且所述定时器记载的时间从初始时间变更至目标时间时,确定所述针对的可调度的耗时梯度为目标耗时梯度;将所述定时器记录的时间重新调整为所述初始时间。
在其中一个实施例中,所述目标耗时梯度确定模块1302还用于在所述触发器为计数器,且所述计数器用于记载与所述针对的可调度的耗时梯度相对应的请求存储池中的请求数量时,判断所述计数器记载的请求数量是否达到目标数量;当所述计数器记载的请求数量达到目标数量,则确定所述针对的可调度的耗时梯度为目标耗时梯度;根据当前时刻与所述针对的可调度的耗时梯度相对应的请求存储池中的请求数量,对所述计数器记录的请求数量进行更新。
在其中一个实施例中,所述新区块生成模块1304还用于确定与所述目标耗时梯度相适配的预配置资源量,并通过所述预配置资源量的资源执行所述待处理的任务执行请求对应的待执行任务;确定所述目标耗时梯度所表征的耗时,并当所述待执行任务未在所述目标耗时梯度所表征的耗时内执行完毕时,确定所述待执行任务执行失败;将所述待处理的任务执行请求再次存储至与所述目标耗时梯度相对应的请求存储池。
在其中一个实施例中,所述新区块生成模块1304还用于确定所述待执行任务执行失败的次数;在所述次数大于或等于预设次数阈值时,确定更新耗时梯度;所述更新耗时梯度表征的耗时大于所述目标耗时梯度表征的耗时;确定可调度所述更新耗时梯度的节点,并将所述待处理的任务执行请求发送至可调度所述更新耗时梯度的节点;发送的所述待处理的任务执行请求,用于触发可调度所述更新耗时梯度的节点,将所述待处理的任务执行请求存储至与所述更新耗时梯度相对应的请求存储池。
在其中一个实施例中,所述共识模块1306还用于将所述携带有标识的新区块在所述区块链网络中进行广播;其中,广播的所述携带有标识的新区块,用于触发除所述当前节点之外的其余节点对所述携带有标识的新区块进行投票式共识,得到共识结果。
在其中一个实施例中,所述共识结果包括各所述其余节点各自的投票结果;每个所述投票结果,为相应其余节点对携带有标识的新区块进行正确性验证而得到的结果;在所述投票结果为第一结果的情况下,所述投票结果表征相应其余节点确认携带有标识的新区块验证通过;在所述投票结果为第二结果的情况下,所述投票结果表征相应其余节点确认携带有标识的新区块验证未通过;在第一结果的数量大于第二结果的数量时,所述共识结果为表征携带有标识的新区块通过共识的结果。
在其中一个实施例中,所述基于区块链网络的区块生成装置1300还包括请求存储模块,用于当接收到待存储的任务执行请求时,获取所述待存储的任务执行请求携带的耗时梯度信息;当所述区块链网络中存在与所述耗时梯度信息相对应的对应耗时梯度时,确定所述区块链网络中可调度所述对应耗时梯度的目标节点;将所述待存储的任务执行请求发送至所述目标节点;其中,发送的所述待存储的任务执行请求,用于触发所述目标节点将所述待存储的任务执行请求存储至与所述对应耗时梯度相对应的请求存储池。
在其中一个实施例中,所述请求存储模块还用于当所述区块链网络中不存在与所述耗时梯度信息相对应的对应耗时梯度时,将所述待存储的任务执行请求发送至所述区块链网络中的主节点;其中,发送的所述待存储的任务执行请求,用于触发所述主节点创建与所述耗时梯度信息相对应的对应耗时梯度,并将所述对应耗时梯度在所述区块链网络中的各节点之间进行广播;发送的所述待存储的任务执行请求,还用于触发所述主节点将所述待存储的任务执行请求转发至所述区块链网络中的空闲节点,以使所述空闲节点作为可调度所述对应耗时梯度的节点,并将所述待存储的任务执行请求存储至与所述对应耗时梯度相对应的请求存储池。
在其中一个实施例中,所述请求存储模块还用于获取发送所述待存储的任务执行请求的目标对象的对象签名;所述对象签名是通过与所述目标对象相对应的私钥进行加密得到;获取与所述私钥相匹配的公钥,并通过所述公钥对所述对象签名进行验证;在对所述对象签名验证通过的情况下,获取所述待存储的任务执行请求携带的耗时梯度信息。
上述基于区块链网络的区块生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图14所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储基于区块链网络的区块生成数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于区块链网络的区块生成方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI(移动热点)、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种基于区块链网络的区块生成方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图14中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (24)
1.一种基于区块链网络的区块生成方法,其特征在于,应用于区块链网络中的节点,所述区块链网络存储有区块树,所述区块树包括多条区块链,且每条区块链分别对应一个耗时梯度,所述耗时梯度表征执行任务的耗时,所述方法包括:
确定当前节点可调度且满足新区块生成条件的目标耗时梯度;
从与所述目标耗时梯度对应的请求存储池中获取待处理的任务执行请求,执行所述待处理的任务执行请求对应的待执行任务,得到任务执行结果;所述待执行任务的执行耗时,与所述目标耗时梯度相匹配;
创建新区块,并确定所述区块树中每条区块链上最新上链的区块的标识;
根据所述任务执行结果、所述区块树中每条区块链上最新上链的区块的标识,生成所述新区块的标识;
将携带有标识的新区块发送至所述区块链网络中除所述当前节点之外的其余节点进行共识,并在共识通过后将所述新区块添加至所述区块树中与所述目标耗时梯度对应的区块链上。
2.根据权利要求1所述的方法,其特征在于,所述确定当前节点可调度且满足新区块生成条件的目标耗时梯度,包括:
确定所述当前节点可调度的耗时梯度;
针对所述当前节点可调度的每个耗时梯度,确定与所针对的可调度的耗时梯度对应的触发器;
当所述触发器指示所述针对的可调度的耗时梯度满足新区块生成条件时,则将所述针对的可调度的耗时梯度作为目标耗时梯度;
所述在共识通过后将所述新区块添加至所述区块树中与所述目标耗时梯度对应的区块链上之后,所述方法还包括:
按照预设信息更新规则,更新所述触发器。
3.根据权利要求2所述的方法,其特征在于,所述当所述触发器指示所述针对的可调度的耗时梯度满足新区块生成条件时,则将所述针对的可调度的耗时梯度作为目标耗时梯度,包括:
在所述触发器为定时器,且所述定时器记载的时间从初始时间变更至目标时间时,确定所述针对的可调度的耗时梯度为目标耗时梯度;
所述按照预设信息更新规则,更新所述触发器记载的信息,包括:
将所述定时器记录的时间重新调整为所述初始时间。
4.根据权利要求2所述的方法,其特征在于,所述当所述触发器指示所述针对的可调度的耗时梯度满足新区块生成条件时,则将所述针对的可调度的耗时梯度作为目标耗时梯度,包括:
在所述触发器为计数器,且所述计数器用于记载与所述针对的可调度的耗时梯度相对应的请求存储池中的请求数量时,判断所述计数器记载的请求数量是否达到目标数量;
当所述计数器记载的请求数量达到目标数量,则确定所述针对的可调度的耗时梯度为目标耗时梯度;
所述按照预设信息更新规则,更新所述触发器记载的信息包括:
根据当前时刻与所述针对的可调度的耗时梯度相对应的请求存储池中的请求数量,对所述计数器记录的请求数量进行更新。
5.根据权利要求1所述的方法,其特征在于,所述执行所述待处理的任务执行请求对应的待执行任务,包括:
确定与所述目标耗时梯度相适配的预配置资源量,并通过所述预配置资源量的资源执行所述待处理的任务执行请求对应的待执行任务;
确定所述目标耗时梯度所表征的耗时,并当所述待执行任务未在所述目标耗时梯度所表征的耗时内执行完毕时,确定所述待执行任务执行失败;
将所述待处理的任务执行请求再次存储至与所述目标耗时梯度相对应的请求存储池。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
确定所述待执行任务执行失败的次数;
在所述次数大于或等于预设次数阈值时,确定更新耗时梯度;所述更新耗时梯度表征的耗时大于所述目标耗时梯度表征的耗时;
确定可调度所述更新耗时梯度的节点,并将所述待处理的任务执行请求发送至可调度所述更新耗时梯度的节点;发送的所述待处理的任务执行请求,用于触发可调度所述更新耗时梯度的节点,将所述待处理的任务执行请求存储至与所述更新耗时梯度相对应的请求存储池。
7.根据权利要求1所述的方法,其特征在于,所述将携带有标识的新区块发送至所述区块链网络中除所述当前节点之外的其余节点进行共识,包括:
将所述携带有标识的新区块在所述区块链网络中进行广播;
其中,广播的所述携带有标识的新区块,用于触发除所述当前节点之外的其余节点对所述携带有标识的新区块进行投票式共识,得到共识结果。
8.根据权利要求7所述的方法,其特征在于,所述共识结果包括各所述其余节点各自的投票结果;每个所述投票结果,为相应其余节点对携带有标识的新区块进行正确性验证而得到的结果;
在所述投票结果为第一结果的情况下,所述投票结果表征相应其余节点确认携带有标识的新区块验证通过;在所述投票结果为第二结果的情况下,所述投票结果表征相应其余节点确认携带有标识的新区块验证未通过;在第一结果的数量大于第二结果的数量时,所述共识结果为表征携带有标识的新区块通过共识的结果。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当接收到待存储的任务执行请求时,获取所述待存储的任务执行请求携带的耗时梯度信息;
当所述区块链网络中存在与所述耗时梯度信息相对应的对应耗时梯度时,确定所述区块链网络中可调度所述对应耗时梯度的目标节点;
将所述待存储的任务执行请求发送至所述目标节点;
其中,发送的所述待存储的任务执行请求,用于触发所述目标节点将所述待存储的任务执行请求存储至与所述对应耗时梯度相对应的请求存储池。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
当所述区块链网络中不存在与所述耗时梯度信息相对应的对应耗时梯度时,将所述待存储的任务执行请求发送至所述区块链网络中的主节点;
其中,发送的所述待存储的任务执行请求,用于触发所述主节点创建与所述耗时梯度信息相对应的对应耗时梯度,并将所述对应耗时梯度在所述区块链网络中的各节点之间进行广播;
发送的所述待存储的任务执行请求,还用于触发所述主节点将所述待存储的任务执行请求转发至所述区块链网络中的空闲节点,以使所述空闲节点作为可调度所述对应耗时梯度的节点,并将所述待存储的任务执行请求存储至与所述对应耗时梯度相对应的请求存储池。
11.根据权利要求9所述的方法,其特征在于,在所述获取所述待存储的任务执行请求携带的耗时梯度信息之前,所述方法还包括:
获取发送所述待存储的任务执行请求的目标对象的对象签名;所述对象签名是通过与所述目标对象相对应的私钥进行加密得到;
获取与所述私钥相匹配的公钥,并通过所述公钥对所述对象签名进行验证;
所述获取所述待存储的任务执行请求携带的耗时梯度信息,包括:
在对所述对象签名验证通过的情况下,获取所述待存储的任务执行请求携带的耗时梯度信息。
12.一种基于区块链网络的区块生成装置,其特征在于,应用于区块链网络中至少一部分节点中的每个节点,所述区块链网络存储有区块树,所述区块树包括多个耗时梯度各自对应的区块链,所述耗时梯度表征执行任务的耗时,所述装置包括:
目标耗时梯度确定模块,用于确定当前节点可调度且满足新区块生成条件的目标耗时梯度;
新区块生成模块,用于从与所述目标耗时梯度对应的请求存储池中获取待处理的任务执行请求,并执行所述待处理的任务执行请求对应的待执行任务,得到任务执行结果;所述待执行任务的执行耗时,与所述目标耗时梯度相匹配; 创建新区块,并确定所述区块树中每条区块链上最新上链的区块的标识;根据所述任务执行结果、所述区块树中每条区块链上最新上链的区块的标识,生成所述新区块的标识;
共识模块,用于将携带有标识的新区块发送至所述区块链网络中除所述当前节点之外的其余节点进行共识,并在共识通过后将所述新区块添加至所述区块树中与所述目标耗时梯度对应的区块链上。
13.根据权利要求12所述的装置,其特征在于,所述目标耗时梯度确定模块还用于确定所述当前节点可调度的耗时梯度;针对所述当前节点可调度的每个耗时梯度,确定与所针对的可调度的耗时梯度对应的触发器;当所述触发器指示所述针对的可调度的耗时梯度满足新区块生成条件时,则将所述针对的可调度的耗时梯度作为目标耗时梯度;按照预设信息更新规则,更新所述触发器。
14.根据权利要求13所述的装置,其特征在于,所述目标耗时梯度确定模块还用于在所述触发器为定时器,且所述定时器记载的时间从初始时间变更至目标时间时,确定所述针对的可调度的耗时梯度为目标耗时梯度;将所述定时器记录的时间重新调整为所述初始时间。
15.根据权利要求13所述的装置,其特征在于,所述目标耗时梯度确定模块还用于在所述触发器为计数器,且所述计数器用于记载与所述针对的可调度的耗时梯度相对应的请求存储池中的请求数量时,判断所述计数器记载的请求数量是否达到目标数量;当所述计数器记载的请求数量达到目标数量,则确定所述针对的可调度的耗时梯度为目标耗时梯度;根据当前时刻与所述针对的可调度的耗时梯度相对应的请求存储池中的请求数量,对所述计数器记录的请求数量进行更新。
16.根据权利要求12所述的装置,其特征在于,所述新区块生成模块还用于确定与所述目标耗时梯度相适配的预配置资源量,并通过所述预配置资源量的资源执行所述待处理的任务执行请求对应的待执行任务;确定所述目标耗时梯度所表征的耗时,并当所述待执行任务未在所述目标耗时梯度所表征的耗时内执行完毕时,确定所述待执行任务执行失败;将所述待处理的任务执行请求再次存储至与所述目标耗时梯度相对应的请求存储池。
17.根据权利要求16所述的装置,其特征在于,所述新区块生成模块还用于确定所述待执行任务执行失败的次数;在所述次数大于或等于预设次数阈值时,确定更新耗时梯度;所述更新耗时梯度表征的耗时大于所述目标耗时梯度表征的耗时;确定可调度所述更新耗时梯度的节点,并将所述待处理的任务执行请求发送至可调度所述更新耗时梯度的节点;发送的所述待处理的任务执行请求,用于触发可调度所述更新耗时梯度的节点,将所述待处理的任务执行请求存储至与所述更新耗时梯度相对应的请求存储池。
18.根据权利要求12所述的装置,其特征在于,所述共识模块还用于将所述携带有标识的新区块在所述区块链网络中进行广播;其中,广播的所述携带有标识的新区块,用于触发除所述当前节点之外的其余节点对所述携带有标识的新区块进行投票式共识,得到共识结果。
19.根据权利要求18所述的装置,其特征在于,所述共识结果包括各所述其余节点各自的投票结果;每个所述投票结果,为相应其余节点对携带有标识的新区块进行正确性验证而得到的结果;
在所述投票结果为第一结果的情况下,所述投票结果表征相应其余节点确认携带有标识的新区块验证通过;在所述投票结果为第二结果的情况下,所述投票结果表征相应其余节点确认携带有标识的新区块验证未通过;在第一结果的数量大于第二结果的数量时,所述共识结果为表征携带有标识的新区块通过共识的结果。
20.根据权利要求12所述的装置,其特征在于,所述基于区块链网络的区块生成装置还包括请求存储模块,用于当接收到待存储的任务执行请求时,获取所述待存储的任务执行请求携带的耗时梯度信息;当所述区块链网络中存在与所述耗时梯度信息相对应的对应耗时梯度时,确定所述区块链网络中可调度所述对应耗时梯度的目标节点;将所述待存储的任务执行请求发送至所述目标节点;其中,发送的所述待存储的任务执行请求,用于触发所述目标节点将所述待存储的任务执行请求存储至与所述对应耗时梯度相对应的请求存储池。
21.根据权利要求20所述的装置,其特征在于,所述请求存储模块还用于当所述区块链网络中不存在与所述耗时梯度信息相对应的对应耗时梯度时,将所述待存储的任务执行请求发送至所述区块链网络中的主节点;其中,发送的所述待存储的任务执行请求,用于触发所述主节点创建与所述耗时梯度信息相对应的对应耗时梯度,并将所述对应耗时梯度在所述区块链网络中的各节点之间进行广播;发送的所述待存储的任务执行请求,还用于触发所述主节点将所述待存储的任务执行请求转发至所述区块链网络中的空闲节点,以使所述空闲节点作为可调度所述对应耗时梯度的节点,并将所述待存储的任务执行请求存储至与所述对应耗时梯度相对应的请求存储池。
22.根据权利要求20所述的装置,其特征在于,所述请求存储模块还用于获取发送所述待存储的任务执行请求的目标对象的对象签名;所述对象签名是通过与所述目标对象相对应的私钥进行加密得到;获取与所述私钥相匹配的公钥,并通过所述公钥对所述对象签名进行验证;在对所述对象签名验证通过的情况下,获取所述待存储的任务执行请求携带的耗时梯度信息。
23.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11中任一项所述的方法的步骤。
24.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311161243.9A CN116896564B (zh) | 2023-09-11 | 2023-09-11 | 基于区块链网络的区块生成方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311161243.9A CN116896564B (zh) | 2023-09-11 | 2023-09-11 | 基于区块链网络的区块生成方法、装置和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116896564A CN116896564A (zh) | 2023-10-17 |
CN116896564B true CN116896564B (zh) | 2023-12-22 |
Family
ID=88312448
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311161243.9A Active CN116896564B (zh) | 2023-09-11 | 2023-09-11 | 基于区块链网络的区块生成方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116896564B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117291273B (zh) * | 2023-11-24 | 2024-02-13 | 合肥微观纪元数字科技有限公司 | 量子计算区块链系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110598446A (zh) * | 2019-09-16 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 基于区块链的测试方法、装置、存储介质和计算机设备 |
CN116112507A (zh) * | 2022-12-30 | 2023-05-12 | 湖南天河国云科技有限公司 | 基于分层区块链多任务异步执行方法及装置 |
CN116703601A (zh) * | 2023-08-03 | 2023-09-05 | 腾讯科技(深圳)有限公司 | 基于区块链网络的数据处理方法、装置、设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020213125A1 (ja) * | 2019-04-18 | 2020-10-22 | 三菱電機株式会社 | 入退管理システム、入退管理システムの認証装置、入退管理システムの管理装置、入退管理システムの携帯端末、入退管理データのデータ構造、入退管理プログラム、および入退管理システムの構築方法 |
CN110602096B (zh) * | 2019-09-12 | 2021-07-13 | 腾讯科技(深圳)有限公司 | 区块链网络中的数据处理方法、装置、存储介质和设备 |
US11652604B2 (en) * | 2020-11-12 | 2023-05-16 | Paypal, Inc. | Blockchain data compression and storage |
-
2023
- 2023-09-11 CN CN202311161243.9A patent/CN116896564B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110598446A (zh) * | 2019-09-16 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 基于区块链的测试方法、装置、存储介质和计算机设备 |
CN116112507A (zh) * | 2022-12-30 | 2023-05-12 | 湖南天河国云科技有限公司 | 基于分层区块链多任务异步执行方法及装置 |
CN116703601A (zh) * | 2023-08-03 | 2023-09-05 | 腾讯科技(深圳)有限公司 | 基于区块链网络的数据处理方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
区块链关键技术中的数据一致性研究;翟社平;李兆兆;段宏宇;高山;;计算机技术与发展(第09期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116896564A (zh) | 2023-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210295321A1 (en) | Methods for decentralized digital asset transfer and smart contract state transition | |
US11756030B2 (en) | Secure management of content distribution data blocks on a blockchain | |
US20240020421A1 (en) | Distributed application architectures using blockchain and distributed file systems | |
US20200026699A1 (en) | Highly Performant Decentralized Public Ledger with Hybrid Consensus | |
US20230037932A1 (en) | Data processing method and apparatus based on blockchain network, and computer device | |
CN112749969B (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN116896564B (zh) | 基于区块链网络的区块生成方法、装置和计算机设备 | |
US20210233068A1 (en) | Settlement system, settlement method, user device, and settlement program | |
CN113837760B (zh) | 数据处理方法、装置、计算机设备以及存储介质 | |
CN113079139B (zh) | 基于区块链的共识组主节点确定方法、装置及系统 | |
WO2019153660A1 (zh) | 交易处理方法、装置、计算机设备和存储介质 | |
WO2023185059A1 (zh) | 一种共识方法和区块链节点 | |
CN111033491A (zh) | 基于纠错编码存储共享的区块链数据 | |
CN111932239B (zh) | 业务处理方法、装置、节点设备及存储介质 | |
CN113919846B (zh) | 区块链节点动态分组方法、装置、计算机设备和存储介质 | |
CN114022285A (zh) | 一种基于联盟区块链的跨机构云计算资源计量方法及系统 | |
CN112995167A (zh) | 基于Kafka机制的用电信息采集方法、区块链网络及用户端 | |
CN108882230B (zh) | 通话记录管理方法、装置及系统 | |
CN116012017A (zh) | 资源信息处理方法、装置、计算机设备和存储介质 | |
CN114493598A (zh) | 计算资源管理方法、装置、计算机设备和存储介质 | |
CN114254278A (zh) | 用户账号合并方法、装置、计算机设备以及存储介质 | |
CN116095074A (zh) | 资源分配方法、装置、相关设备及存储介质 | |
CN111339189A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
KR20200052198A (ko) | 블록체인 네트워크에서 보상을 제공하는 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체 | |
CN117726462A (zh) | 税务数据处理方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |