CN116244709A - 区块链网络中出块节点的确定方法及相关装置 - Google Patents
区块链网络中出块节点的确定方法及相关装置 Download PDFInfo
- Publication number
- CN116244709A CN116244709A CN202111486505.XA CN202111486505A CN116244709A CN 116244709 A CN116244709 A CN 116244709A CN 202111486505 A CN202111486505 A CN 202111486505A CN 116244709 A CN116244709 A CN 116244709A
- Authority
- CN
- China
- Prior art keywords
- node
- target
- task
- calculation
- nodes
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- 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)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请实施例公开了一种区块链网络中出块节点的确定方法及相关装置,可适用于区块链、云计算以及计算机技术等领域。该方法包括:在预设时间区间内,获取多个目标节点针对目标计算任务的计算结果,其中,目标计算任务为智能合约中任务列表中的任一计算任务,各计算任务由任务提交方写入智能合约;基于目标节点的节点总数量和各目标节点对应的计算结果,确定对应的计算结果为正确结果的候选节点;基于各候选节点在提交目标计算任务后的诚信值,从各候选节点中确定出出块节点。采用本申请实施例,可提升区块链网络中计算资源的利用率,适用性高。
Description
技术领域
本申请涉及区块链领域,尤其涉及一种区块链网络中出块节点的确定方法及相关装置。
背景技术
区块链网络是信息技术领域的一种分布式账本技术,一般由共识、交易区块和状态数据存储、密码学身份安全等内容构成,由于账本是分布式存储的,而且区块是经过共识的,所以具有不可篡改、可追溯、共同维护等特征。
在确定区块链网络中出块节点时,现有技术往往采用基于工作量证明、基于权益证明以及基于实用拜占庭容错算法来确定。但是基于现有技术来确定出块节点时,区块链网络中的大量节点往往会进行大量的无效计算,导致计算资源浪费。
发明内容
本申请实施例提供一种区块链网络中出块节点的确定方法及相关装置,可提升区块链网络中计算资源的利用率,适用性高。
一方面,本申请实施例提供一种区块链网络中出块节点的确定方法,该方法包括:
在预设时间区间内,获取多个目标节点针对目标计算任务的计算结果,其中,上述目标计算任务为智能合约中任务列表中的任一计算任务,各上述计算任务由任务提交方写入上述智能合约;
基于上述目标节点的节点总数量和各上述目标节点对应的计算结果,确定对应的计算结果为正确结果的候选节点;
基于各上述候选节点在提交上述目标计算任务后的诚信值,从各上述候选节点中确定出出块节点。
另一方面,本申请实施例提供了一种区块链网络中出块节点的确定装置,该装置包括:
计算结果获取模块,用于在预设时间区间内,获取多个目标节点针对目标计算任务的计算结果,其中,上述目标计算任务为智能合约中任务列表中的任一计算任务,各上述计算任务由任务提交方写入上述智能合约;
候选节点确定模块,用于基于上述目标节点的节点总数量和各上述目标节点对应的计算结果,确定对应的计算结果为正确结果的候选节点;
出块节点确定模块,用于基于各上述候选节点在提交上述目标计算任务后的诚信值,从各上述候选节点中确定出出块节点。
另一方面,本申请实施例提供了一种电子设备,包括处理器和存储器,该处理器和存储器相互连接;
上述存储器用于存储计算机程序;
上述处理器被配置用于在调用上述计算机程序时,执行本申请实施例提供的区块链网络中出块节点的确定方法。
另一方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现本申请实施例提供的区块链网络中出块节点的确定方法。
另一方面,本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机指令,上述计算机程序或计算机指令被处理器执行时实现本申请实施例提供的区块链网络中出块节点的确定方法。
在本申请实施例中,通过将任务提交方提交的计算任务写入智能合约,可使得区块链网络中的节点通过对存储于智能合约中的计算任务进行计算累积诚信值,进而根据诚信值来竞争出块资格,减少通过工作量证明等算法获取出块资格所带来的无效计算,从而可在充分利用使得区块链网络中的计算资源充分迎合生产生活中的计算需求,减少资源浪费,适用性高。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的网络结构示意图;
图2是本申请实施例提供的区块链网络中出块节点的确定方法的流程示意图;
图3是本申请实施例提供的分布式任务的场景示意图;
图4是本申请实施例提供的验证计算任务的场景示意图;
图5是本申请实施例提供的获取目标节点的计算结果的场景示意图;
图6是本申请实施例提供的数据共享系统的结构示意图;
图7是本申请实施例提供的确定出块节点的场景示意图;
图8是本申请实施例提供的区块链网络中出块节点的确定装置的结构示意图;
图9是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1,图1是本申请实施例提供的网络结构示意图。如图1所示,任务提交方可提供计算任务,并将计算任务写入智能合约中的任务列表,如任务提交方将计算任务1、计算任务2和计算任务3写入智能合约中。区块链网络中的节点在有意愿出块时,可调用智能合约对智能合约中的任务列表中的某一计算任务进行计算来获取出块资格,如区块链网络中的节点1、节点2、节点3以及节点4可针对任务列表中的计算任务2进行计算。
在此情况下,智能合约可在预设时间区间内获取节点1、节点2、节点3以及节点4针对计算任务2的计算结果,其中节点1针对计算任务2的计算结果为计算结果1,节点2针对计算任务2的计算结果为计算结果2,节点3针对计算任务2的计算结果为计算结果3,节点4针对计算任务2的计算结果为计算结果4。
进一步地,智能合约可基于针对计算任务2的各计算结果以及参与对计算任务2进行计算的节点总数量,确定对应的计算结果为正确结果的候选节点。假设节点2和节点3的计算结果为正确结果,则节点2和节点3即为候选结果。
基于此,智能合约可确定节点2和节点3在提交对应的计算结果之后的诚信值,基于节点2和节点3的诚信值确定出出块节点(如节点3)。也就是说,最终确定出的出块节点具有出块资格,进而将出块节点生成的区块加入区块链网络之中。
其中,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
本申请实施例中的区块链网络可以是由多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端以及客户端)通过网络通信的形式连接形成的分布式系统。节点之间形成组成的点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
参见图2,图2是本申请实施例提供的区块链网络中出块节点的确定方法的流程示意图。图2所示的区块链网络中出块节点的确定方法具体可由智能合约执行,也可由区块链网络中的管理节点执行,具体可包括如下步骤:
步骤S21、在预设时间区间内,获取多个目标节点针对目标计算任务的计算结果。
在一些可行的实施方式中,目标计算任务为智能合约中任务列表中的任一计算任务,各计算任务由任务提交方写入智能合约。
其中,上述任务列表中可包括各计算任务的任务地址,以使区块链网络中的节点在从智能合约中读取任一计算任务时,可跳转至该计算任务对应的任务地址以获取该计算任务。
其中,上述任务列表中的各计算任务可对应于一个或者多个任务提交方,即任意一个任务提交方均可以向智能合约中写入计算任务。
其中,上述任务列表还可包括任务提交方的相关信息,以指示任务列表中的每一计算任务的任务提交方。
其中,上述任务提交方可以为区块链网络中的节点,也可为与区块链网络连接的其他用户,具体可基于实际应用场景需求确定,在此不做限制。
其中,区块链网络中的任一节点均可以通过对智能合约中的任务列表中的计算任务进行计算来获取出块资格以成为出块节点。或者可将任务列表在区块链网络中进行广播,以使区块链网络中的节点自行决定是否参与计算以获取出块资格。
对于区块链网络中的每一节点,可响应于该节点在有出块意愿情况下发送的针对任一计算任务的注册请求,将该节点的节点信息写入智能合约中与该计算任务对应的节点列表以完成对该节点的注册。在该节点完成注册之后,该节点可对该计算任务进行计算以获取出块资格。
其中,具有出块意愿的节点也可通过调用智能合约,自行将各自的节点信息写入智能合约中,具体可基于实际应用场景需求确定,在此不做限制。
可选地,对于任务列表中的任一计算任务,可将其确定为目标计算任务。为提升节点计算结果的正确率,减少参与计算的不良节点的数量,对于区块链网络中的每一节点,可响应于该节点发送的出块请求,确定该节点的初始诚信值。
每一节点的初始诚信值用于表征该节点当前在参与计算任务时的可信程度,该节点的初始诚信值越高,表明该节点此前在参与其他计算任务的恶意行为越少,计算结果的正确率越高。其中,上述恶意行为影响公平计算的相关行为,具体可基于实际应用场景需求确定,在此不做限制。
在该节点的初始诚信值大于预设诚信值的情况下,可确定该节点的可信程度较高,此时可进一步响应于该节点针对目标计算任务的注册请求,将该节点的节点信息写入智能合约中与目标计算任务对应的节点列表,并将该节点确定为针对目标计算任务进行计算的目标节点。
或者,在该节点的初始诚信值大于预设诚信值的情况下,可获取该节点提交的转移资源以对该节点的计算行为进行约束。若该节点在计算过程中出现恶意行为,则对其提交的转移资源进行扣除,从而进一步减少该节点发生恶意行为的概率。在获取该节点提交的转移资源的情况下,可进一步响应于该节点针对目标计算任务的注册请求,将该节点的节点信息写入智能合约中与目标计算任务对应的节点列表,并将该节点确定为针对目标计算任务进行计算的目标节点。
其中,目标计算任务对的节点列表中可包括多个节点信息,每一节点信息对应于一个目标节点,用于表示目标计算任务存在多个目标节点参与计算。
其中,上述目标节点的节点信息可以为目标节点的名称、IP地址、设备标识等,具体可基于实际应用场景需求确定,在此不做限制。
其中,上述预设诚信值同样可以基于实际应用场景需求确定,在此不做限制。
在一些可行的实施方式中,上述任务列表中的任一计算任务,可以为任务提交方提交的、在实际生活和生产过程中所产生的复杂计算任务,从而使得区块链网络中的节点在参与出块时完成日常生活和生产中产生的相关计算任务。即区块链网络中的节点在获取出块资格之前,需要完成对日常生活和生产过程中的相关计算任务,以充分利用区块链网络中的计算资源。
可选地,上述任务列表中的任一计算任务可以为分布式计算任务中的任一节点计算任务,该分布式计算任务包括多级节点计算任务,每一节点计算任务的计算结果是基于与该节点计算任务相关联的下一级节点计算任务的计算结果确定的。
即任务列表中的各计算任务可以构成一个任务树,任务树的每一个叶子节点(包括根节点)的计算任务为分布式计算任务中的一个节点计算任务,且各叶子节点对应的计算任务的关联关系与各节点计算任务的关联关系一致,从而多个目标节点在计算任务列表中的计算任务时,可只针对分布式计算任务中的某一节点计算任务进行计算,不会占用目标节点对应设备较多的计算资源,减少对目标节点对应设备的性能的影响。
其中,智能合约可通过对任务树中各叶子节点对应的计算任务进行维护,为目标节点分配计算任务。具体而言,由于分布式计算任务每一节点计算任务的计算结果是基于与该节点计算任务相关联的下一级节点计算任务的计算结果确定的,因此任务树中每一叶子节点对应的计算任务的计算结果是基于与该叶子节点相关联的下一级叶子节点对应的计算任务的计算结果确定的进而在允许多个目标节点针对目标计算任务进行计算之前,需要确定与目标计算任务相关联的下一级节点计算任务(即与目标计算任务对应的叶子节点相关联的下一级叶子节点对应的计算任务)已完成计算。并在确定与目标计算任务相关联的下一级节点任务的计算结果的情况下,才会向目标节点提供目标计算任务,目标节点才可以基于与目标计算任务相关联的下一级节点任务的计算结果,参与对目标计算任务的计算。
其中,在区块链网络中的任一节点完成任务树中任一叶子节点对应的计算任务的计算、且对应的计算结果为正确结果的情况下,可获取该计算任务的计算结果并将其进行存储。从而可使得区块链网络中的任一节点在针对该任务树中其他叶子节点(为方便描述,以下称为第一叶子节点)的计算任务进行计算时,在确定已获取与第一叶子节点相关联的下一级叶子节点对应的计算任务的计算结果的情况下,向该节点提供与第一叶子节点相关联的下一级叶子节点对应的计算任务的计算结果,以使该节点基于与第一叶子节点相关联的下一级叶子节点对应的计算任务的计算结果对第一叶子节点对应的计算任务进行计算。
若任务树中多个叶子节点(如第二叶子节点和第三叶子节点)为与同一个叶子节点(如第四叶子节点)相关联的上一级叶子节点,则区块链网络中的不同节点在分别对第二叶子节点对应的计算任务和第三叶子节点对应的计算任务进行计算时,由于已存储第四叶子节点对应的计算任务的计算结果,因此可直接向各节点提供第四叶子节点对应的计算任务的计算结果,以使各节点基于第四叶子节点对应的计算任务的计算结果,分别对第二叶子节点对应的计算任务和第三叶子节点对应的计算任务进行计算。
基于此,可提升区块链网络中各节点对任务树中各叶子节点对应的计算任务(即分布式计算任务中的各节点计算任务)的计算效率,并且当任务树中的任一叶子节点对应的计算任务(分布式计算任务中的任一节点计算任务)计算错误时,可知己基于与该叶子节点相关联的下一级叶子节点对应的计算任务的计算结果(与该节点计算任务相关联的下一级节点计算任务的计算结果)重新计算该叶子节点对应的计算任务(该节点计算任务)的计算结果即可,减少区块链网络中各节点的计算重复性,提升计算效果。
例如,参见图3,图3是本申请实施例提供的分布式任务的场景示意图。如图3所示,任务提交方可预先将分布式计算任务进行任务分解,将分布式任务分解为一级节点计算任务、二级节点计算任务和三级节点计算任务,且二级节点计算任务为一级节点计算任务的下一级节点计算任务,三级节点计算任务为二级节点计算任务的下一级节点计算任务。
其中,图3中的一个节点计算任务为任务列表所构成的任务树中的一个叶子节点对应的计算任务,任务树的每一个叶子节点(包括根节点)的计算任务为分布式计算任务中的一个节点计算任务,且各叶子节点对应的计算任务的关联关系与各节点计算任务的关联关系一致。
其中,图3中每一个二级节点计算任务的计算结果基于与该二级节点计算任务相关联的三级节点计算任务的计算结果确定的,一级节点计算任务的计算结果是基于各二级节点计算任务的计算结果确定的。即在计算每一个二级节点计算任务时,需要以与该二级节点计算任务相关联的三级节点计算任务的计算结果为基础进行,在计算一级节点计算任务时,需要以各二级节点计算任务的计算结果为基础进行。
可选地,还可响应于任务提交方的任务修改请求,基于任务修改请求对任务列表中的计算任务进行修改,如对任务地址或者详细地任务内容进行修改等。还可响应于任务提交方的任务更新请求,基于任务更新请求对任务列表中的计算任务进行更新。
在一些可行的实施方式中,任务提交方在提交计算任务时,可对任务提交方提交的计算任务进行验证,以在确定任务提交方提交的计算任务未被篡改的情况下,允许任务提交方提交将计算任务写入智能合约。
具体地,任务提交方在提交计算任务(为方便描述,以下称为待验证计算任务)时,任务提交方可对待验证计算任务进行哈希计算,得到待验证计算任务的第一摘要,并进一步基于任务提交方的私钥对第一摘要进行加密得到待验证计算任务的数字签名。基于此,可获取任务提交方发送的待验证计算任务和对应的数字签名。
进一步地,在接收到任务提交方发送的待验证计算任务和对应的数字签名之后,可对待验证计算任务进行哈希计算,得到待验证任务的第二摘要。同时基于任务提交方的公钥对待验证计算任务的数字签名进行解密,得到待验证计算任务的第二摘要。将第一摘要和第二摘要进行比较,若第一摘要和第二摘要一致,则确定任务提交方提交的待验证计算任务未被篡改,则允许任务提交方将待验证计算任务写入智能合约。若第一摘要和第二摘要不一致,则确定任务提交方提交的待验证计算任务在提交过程中被篡改,此时则不允许任务提交方将待验证计算任务写入智能合约,并向任务提交方发送提示信息,以提示任务提交方对应的待验证计算任务被篡改,需要重新提交待验证计算任务。
参见图4,图4是本申请实施例提供的验证计算任务的场景示意图。在图4中,假设任务提交方提交的待验证计算任务的数字签名为“0010101”,此时可基于任务提交方的公钥对数字签名“0010101”进行解密,得到待验证计算任务的第一摘要“1000100”。与此同时,还可对接收到的待验证计算任务进行哈希计算得到待验证计算任务的第二摘要“1000100”。此时不难看出第一摘要“1000100”和第二摘要“1000100”完全一致,说明任务提交方在提交待验证计算任务的过程中待验证计算任务未被篡改,进而确定任务提交方提交的待验证计算任务为有效计算任务。
可选地,任务提交方在提交计算任务时,还可对任务提交方提供的计算任务的计算量、安全性等进行验证,在验证通过后允许任务提交方将计算任务写入智能合约。
需要特别说明的是,上述对任务提交方提交的计算任务进行验证的验证方式仅为示例,可以基于上述任意一种或者多种验证方式进行验证,也可基于实际应用场景需求采取其他验证方式进行验证,在此不做限制。
在一些可行的实施方式中,在预设时间区间内,可获取多个目标节点针对目标计算任务的计算结果。其中,在预设时间区间内获取目标计算任务的计算结果可防止个别节点长时间无法得到目标计算任务的计算结果或者放弃对目标计算任务进行计算,从而影响出块节点的确定效率。
其中,上述预设时间区间可以为一个出块周期,也可以为其他时间长度,具体可基于实际应用场景需求确定,在此不做限制。
结合图5对获取目标节点的计算结果进行进一步说明。图5是本申请实施例提供的获取目标节点的计算结果的场景示意图。
如图5所示,对于每一目标节点,可获取该目标节点针对目标计算任务的加密计算结果。该目标节点对应的加密计算结果为该目标节点基于该目标节点的私钥对针对目标计算任务的计算结果进行加密之后、基于任务提交方的公钥进行二次加密后得到。
即对于每一目标节点,该目标节点在确定出目标计算任务的计算结果之后,先基于该目标节点的私钥对计算结果进行加密,再基于任务提交方的公钥进行二次加密后得到针对目标计算任务的加密计算结果。
其中,每一目标节点在得到针对目标计算任务的加密计算结果之后,可将其存储于智能合约中,如存储于目标计算任务所在的任务列表之中。从而在获取各目标节点针对目标计算任务的加密结算结果时,直接从智能合约中获取。或者,也可直接从各目标节点获取针对目标计算任务的实时加密计算结果,在此不做限制。
其中,每一目标节点对目标计算任务的计算结果进行加密的过程为独立的加密过程,即任一目标节点针对目标计算任务的计算结果进行加密成功或失败并不应用其他目标节点的加密过程。
进一步地,对于每一目标节点,可将该目标节点的加密计算结果提交至任务提交方,以使任务提交方基于任务提交方的私钥对加密计算结果进行解密之后、基于该目标节点的公钥进行二次解码后得到该目标节点针对目标计算任务的计算结果。
即对于每一目标节点,在将该目标节点的加密计算结果提交至任务提交方之后,任务提交方可先基于任务提交方的私钥对加密计算结果进行解密,再基于该目标节点的公钥进行二次解密后得到该目标节点针对目标计算任务的计算结果。
进一步地,在通过任务提交方获取各目标节点针对目标计算任务的计算结果之后,可从任务提交方获取各目标节点针对目标计算任务的计算结果。
可选地,还可通过智能合约或区块链网络中的可信节点确定目标节点针对目标计算任务的计算结果。
其中,智能合约或可信节点存储有任务提交方的私钥和各目标节点的公钥,从而智能合约或者可信节点可基于任务提交方的私钥对每一目标节点的加密计算结果,并基于各目标节点的公钥进行二次解密后得到各目标节点针对目标计算任务的计算结果。
步骤S22、基于目标节点的节点总数量和各目标节点对应的计算结果,确定对应的计算结果为正确结果的候选节点。
在一些可行的实施方式中,在确定各目标节点针对目标计算任务的计算结果之后,可从各目标节点对应的计算结果中确定各候选计算结果,每一候选计算结果对应于各计算结果中的一种计算结果,且对应于至少一个目标节点,并且任意两个候选计算结果互不相同。
例如,若在预设时间区间内获取到10个目标节点针对目标计算任务的计算结果,且其中2个目标节点对应的计算结果为100,2个目标节点对应的计算结果为111,其他目标节点对应的计算结果为121。则10个目标节点对应的计算结果中的候选计算结果分别为100、111以及121。
进一步地,确定目标计算任务对应的目标节点的节点总数量,即在预设时间区间内提交目标计算任务对应的计算结果的节点的数量。对于每一候选结果,确定该候选计算结果对应的目标节点的节点数量与目标节点的总数量的比值,将该比值确定为该候选计算结果对应的结果数量占比。即每一候选计算结果对应的结果数量占比为与该候选计算结果相一致的计算结果的数量与所有计算结果的总数量的比值。
例如,若在预设时间区间内获取到10个目标节点针对目标计算任务的计算结果,且其中2个目标节点对应的计算结果为100,2个目标节点对应的计算结果为111,其他目标节点对应的计算结果为121。则10个目标节点对应的计算结果中的候选计算结果分别为100、111以及121。则候选计算结果100对应的结果数量占比为2/10=0.2,候选计算结果111对应的结果数量占比为2/10=0.2,候选计算结果121对应的结果数量占比为6/10=0.6。
进一步地,从各候选计算结果对应的结果数量占比中确定出最高结果数量占比。若最高结果数量占比大于预设数量占比,且目标计算任务对应的目标节点的节点总数量大于预设数量,则确定最高结果数量占比对应的候选计算结果为目标计算任务对应的正确结果,并将计算结果为正确结果的目标节点确定为候选节点。即目标计算任务对应的目标节点中,确定出正确计算任务的目标节点为具有出块资格的候选节点。
例如,若在预设时间区间内获取到10个目标节点针对目标计算任务的计算结果,且其中2个目标节点对应的计算结果为100,2个目标节点对应的计算结果为111,其他目标节点对应的计算结果为121。则10个目标节点对应的计算结果中的候选计算结果分别为100、111以及121。则候选计算结果100对应的结果数量占比为2/10=0.2,候选计算结果111对应的结果数量占比为2/10=0.2,候选计算结果121对应的结果数量占比为6/10=0.6。
假设预设数量为8,预设数量占比为0.5,由于上述最高结果数量占比为0.6,且目标节点的数量大于预设数量,因此可将候选计算结果121确定为正确结果,并将计算结果为121的目标节点确定为候选节点。
其中,在确定候选节点的过程中,最高结果数量占比大于预设数量占比可确定大多数的目标节点得到相同的计算结果,从而使得最终确定出的正确结果的可靠性可正确性。
其中,目标计算任务对应的目标节点的节点总数量大于预设数量,可保证足够数量的目标节点参与对目标计算任务的计算,从而使减少在确定候选节点时所依据的计算结果的数量较少的情况下所导致的偶然性,减少提升正确结果的正确率。
可选地,若最高结果数量占比小于或者等于预设数量占比,和/或目标计算任务对应的目标节点的节点总数量小于或者等于预设数量,则确定各目标节点针对目标计算任务的计算结果为无效结果,并停止从目标节点中确定候选节点。
进一步地,在各目标节点针对目标计算任务的计算结果为无效结果的情况下,可在下一预设时间区间内重新获取其他目标节点针对目标计算任务的计算结果,并基于其他目标节点的节点总数量和其他目标节点的计算结果,从其他目标节点中确定出候选节点。
其中,上述预设数量占比和上述预设数量具体可基于实际应用场景需求确定,在此不做限制。
在一些可行的实施方式中,在获取目标节点针对目标计算任务的计算结果之后,可将计算结果写入智能合约,以此通过智能合约可确定目标节点任务对应的目标节点和各目标节点对应的计算结果。
作为一示例,智能合约中参与目标计算任务的计算的目标节点及其计算结果可如下表所示的形式进行存储:
在上表中,编号为2的计算任务为目标任务,且从上表中可确定目标任务对应的目标节点包括节点A和节点B,且节点B针对目标计算任务的计算结果为Result(a),节点B针对目标计算任务的计算结果为Result(b)。
同时,可对目标计算任务对应的正确结果进行标记,以在将各目标节点针对目标计算任务的计算结果写入智能合约之后,当其他节点针对与目标计算任务相关联的上一级计算任务进行计算时,可直接获取目标计算任务对应的计算结果并基于此对与目标计算任务相关联的上一级计算任务进行计算。
在一些可行的实施方式中,在确定候选节点之前,可确定各目标节点在针对目标计算任务进行计算之前的初始诚信值,即确定各目标节点在针对目标计算任务进行计算之前的可信程度。
在确定候选节点之后,由于候选节点为得到目标计算任务的正确结果的节点,因此对于每一候选节点,可将该候选节点对应的初始诚信值增加第一诚信值,得到该候选节点提交针对目标计算任务的计算结果后的诚信值。
也就是说,对于区块链网络中的任一节点,若该节点在针对某一计算任务进行计算后得到的计算结果为正确结果,则该节点可不断累积诚信值。基于此可不断提升得到正确结果较多的节点的可信程度,从而使其在下一次参与针对其他计算任务的计算时,可以更容易地获取计算任务。
同理,对于每一非候选节点,可将该非候选节点对应的初始诚信值减少第二诚信值,得到该非候选节点在提交针对目标计算任务的计算结果后的诚信值。其中,上述非候选节点为目标计算任务对应的目标节点中除候选节点以外的其他目标节点,也即目标计算任务对应的目标节点中,对应的计算结果不是正确结果的目标节点。
对于区块链网络的任一节点,若该节点在神队某一计算任务进行计算后得到的计算结果不是正确结果,则会导致该节点的诚信值减少,从而可降低得到错误结果较多的节点的可信程度,使其在下一次参与针对其他计算任务的计算任务时获取计算任务的难度变大。
基于上述方式,可使得区块链网络中各节点的诚信值不断变化,从而在每一次通过区块链网络中的各节点对任务提交方提交的计算任务进行计算时,可实时基于各节点的诚信值对参与计算的节点进行筛选,从而确保每一次参与计算的节点的可信程度较高,以提升计算结果的稳定性和准确性。
可选地,由于目标节点为区块链网络中成功得到目标计算任务的计算结果的节点,因此对于参与针对目标计算任务的计算但是未成功得到目标计算任务的计算结果的其他节点,可同样将此类节点的初始诚信值减少一定的诚信值,以降低此类节点的可信程度,使其在下一次参与针对其他计算任务的计算任务时获取计算任务的难度变大。
可选地,对于参与针对目标计算任务的计算过程的所有节点,若在计算过程中某一节点存在恶意行为,则将此类节点对应的初始诚信值减少第三诚信值,以降低此类节点的可信程度,使其在下一次参与针对其他计算任务的计算任务时获取计算任务的难度变大。
其中,若此类节点成功得到目标计算任务的计算结果,即此类节点为目标计算任务对应的目标节点,则在基于目标计算任务的各计算结果确定候选结果时,取消此类节点对应的结算结果,从而无论此类节点得到的计算结果是否为目标计算任务的正确结果,最终得到的候选节点均不包括此类节点。
其中,若参与针对目标计算任务的计算过程的所有节点在进行计算之前提交各自的转移资源,若其中任一节点在计算过程中存在恶意行为,则对此类节点提交的转移资源进行扣除,以对此类节点进行惩处。
或者,对于存在恶意行为的节点,还可对其采取其他惩罚措施,如禁止允许其在一定时间区间内参与任何计算任务的计算,也即取消其在一定时期内的出块资格等,具体可基于实际应用场景需求确定,在此不做限制。
可选地,在确定出候选节点之后,若目标节点在参与针对目标计算任务的计算过程之前提交各自的转移资源,可将目标节点中未出现恶意行为的目标对应的转移资源返回至对应的目标节点。
本申请实施例中涉及到的数据处理如对诚信值进行调整等过程,可基于云计算技术实现。云计算是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。云计算是网格计算(GridComputing)、分布式计算(DistributedComputing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network Storage Technologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。
步骤S23、基于各候选节点在提交目标计算任务后的诚信值,从各候选节点中确定出出块节点。
在一些可行的实施方式中,在基于目标节点的节点总数量和各目标节点对应的计算结果确定出候选节点之后,可将各候选节点中诚信值最高的候选节点确定为出块节点,并将该节点生成的新区块加入区块链网络中。
可选地,未防止诚信值最高的候选节点多次成为出块节点,降低其他诚信值较低但是计算结果的争取率较高、出现恶意行为较少的节点成为出块节点的概率,可将各候选节点中诚信值最低的候选节点确定为出块节点,或者将各候选节点中的任一候选节点确定为出块节点。
可选地,在确定出出块节点之后,可确定出块节点所完成的包括目标计算任务在内的所有计算任务的总计算量,在总计算量达到预设计算量的情况下,允许出块节点生成新区块并将新区块加入区块链网络中。
在本申请实施例中,区块链网络可以视为一个数据共享系统,用于进行与节点之间的数据共享。图6所示,图6是本申请实施例提供的数据共享系统的结构示意图。本申请实施例中区块链网络中的各节点可以视为数据共享系统中的各节点601。多个节点601可以是指数据共享系统中各个客户端。每个节点601在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护该数据共享系统内的共享数据。为了保证数据共享系统内的信息互通,数据共享系统中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。
例如,当数据共享系统中的任意节点接收到输入信息时,数据共享系统中的其他节点便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得数据共享系统中全部节点上存储的数据均一致。
对于数据共享系统中的每个节点,均具有与其对应的节点标识,而且数据共享系统中的每个节点均可以存储有数据共享系统中其他节点的节点标识,以便后续根据其他节点的节点标识,将生成的新区块广播至数据共享系统中的其他节点。
每个节点中可维护一个如下表所示的节点标识列表:
节点名称 | 节点标识 |
节点1 | 117.114.151.174 |
节点2 | 117.116.189.145 |
… | … |
节点N | 119.123.789.258 |
每个节点可将节点名称和节点标识对应存储至上述节点标识列表中。其中,节点标识可为IP(Internet Protocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息。
数据共享系统中的每个节点均存储一条相同的区块链。本申请实施例中的出块节点可根据数据共享系统中其他节点的节点标识,将生成的新区块分别发送给其所在的数据共享系统中的其他节点,由其他节点对生成的新区块进行校验,并在完成校验后将生成的新区块添加至其存储的区块链中。在出块节点完成出块之后,可向出块节点提供对应的资源奖励。
下面结合图7对本申请实施例提供的区块链网络中出块节点的确定方法进行进一步说明。图7是本申请实施例提供的确定出块节点的场景示意图,在图7中,任务提交方可向智能合约中写入需要通过区块链网络中的节点间计算的计算任务,且各计算任务通过任务列表进行呈现。其中,任务列表中包括各计算任务的任务地址以及编号,任务地址用于提供具体的计算任务。
区块链网络中的各节点均可参与对任务列表中的计算任务的计算,并且在确认参与之后将其节点信息写入任务列表中,以将不同的计算任务和对应的节点相对应。
进一步地,对于任务列表中的任一计算任务,获取多个节点针对该计算任务的计算结果,基于该计算任务对应的节点总数量和对应的计算结果、以及各节点的诚信值,从该计算任务对应的节点中确定出出块节点。进而获取出块节点生成的新区块,并将新区块添加至区块链网络中。
在本申请实施例中,通过将任务提交方提交的分布式计算任务写入智能合约,可使得区块链网络中的节点通过对存储于智能合约中的分布式计算任务进行计算累积诚信值,进而根据诚信值来竞争出块资格,减少通过工作量证明等算法获取出块资格所带来的无效计算,从而可使得区块链网络中的计算资源充分迎合生产生活中的计算需求,减少资源浪费。同时本申请实施例中出块节点是通过诚信值确定的,且可基于区块链网络中各节点的计算结果,对各节点的诚信值进行调整,从而使得可信程度较高的节点参与计算和出块,进一步提升区块链网络的针对分布式计算任务的计算结果的准确性以及出块有效性适用性高。
参见图8,图8是本申请实施例提供的区块链网络中出块节点的确定装置的结构示意图。本申请实施例提供的装置包括:
计算结果获取模块81,用于在预设时间区间内,获取多个目标节点针对目标计算任务的计算结果,其中,上述目标计算任务为智能合约中任务列表中的任一计算任务,各上述计算任务由任务提交方写入上述智能合约;
候选节点确定模块82,用于基于上述目标节点的节点总数量和各上述目标节点对应的计算结果,确定对应的计算结果为正确结果的候选节点;
出块节点确定模块83,用于基于各上述候选节点在提交上述目标计算任务后的诚信值,从各上述候选节点中确定出出块节点。
在一些可行的实施方式中,对于每一上述目标节点,上述计算结果获取模块81,用于:
获取该目标节点针对目标计算任务的加密计算结果,其中,上述加密计算结果由该目标节点基于该目标节点的私钥对针对上述目标计算任务的计算结果进行加密之后、基于任务提交方的公钥进行二次加密后得到;
将上述加密计算结果提交至上述任务提交方,以使上述任务提交方基于上述任务提交方的私钥对上述加密计算结果进行解密之后、基于该目标节点的公钥进行二次解密后得到该目标节点针对上述目标计算任务的计算结果;
从上述任务提交方获取该目标节点针对上述目标计算任务的计算结果。
在一些可行的实施方式中,上述候选节点确定模块82,用于:
从各上述目标节点对应的计算结果中确定各候选计算结果,每一候选计算结果对应至少一个上述目标节点,各上述候选计算结果互不相同;
基于上述目标节点的节点总数量,确定每一上述候选计算结果对应的结果数量占比,每一上述候选计算结果对应的结果数量占比为该候选计算结果对应的目标节点的节点数量与上述节点总数量的比值;
确定各上述结果数量占比中的最高结果数量占比,若上述最高结果数量占比大于预设数量占比,且上述节点总数量大于预设数量,则将上述最高结果数量占比对应的候选计算结果确定为正确结果,并将上述正确计算结果对应的目标节点确定为候选节点。
在一些可行的实施方式中,上述候选节点确定模块82,还用于:
确定各上述目标节点在针对上述目标计算任务进行计算之前的初始诚信值;
对于上述目标节点中的每一上述候选节点,将该候选节点对应的初始诚信值增加第一诚信值;
对于每一非候选节点,将该非候选节点对应的初始诚信值减少第二诚信值,上述非候选节点为各上述目标节点中除各上述候选节点外的其他目标节点。
在一些可行的实施方式中,对于区块链网络中的每一节点,上述计算结果获取模块81,还用于:
响应于该节点的出块请求,若该节点对应的初始诚信值大于预设诚信值,则获取该节点提交的转移资源;
响应于该节点针对上述目标计算任务的注册请求,将该节点的节点信息写入智能合约中与上述目标计算任务对应的节点列表,并将该节点确定为目标节点。
在一些可行的实施方式中,对于每一上述目标节点,上述候选节点确定模块82,还用于:
若确定该目标节点在计算过程中存在恶意行为,则扣除该目标节点对应的转移资源,将该目标节点对应的初始诚信值减少第三诚信值,并取消该目标节点对应的计算结果;
若该目标节点为上述出块节点,则在上述出块节点完成出块之后,向该出块节点提供对应的奖励。
在一些可行的实施方式中,上述任务列表中的每一上述计算任务为分布式计算任务中的任一节点计算任务,上述分布式计算任务包括多级节点计算任务,每一节点计算任务的计算结果是基于与该节点计算任务相关联的下一级节点计算任务的计算结果确定的。
具体实现中,上述装置可通过其内置的各个功能模块执行如上述图2中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
参见图9,图9是本申请实施例提供的电子设备的结构示意图。如图9所示,本实施例中的电子设备900可以包括:处理器901,网络接口904和存储器905,此外,上述电子设备900还可以包括:用户接口903,和至少一个通信总线902。其中,通信总线902用于实现这些组件之间的连接通信。其中,用户接口903可以包括显示屏(Display)、键盘(Keyboard),可选用户接口903还可以包括标准的有线接口、无线接口。网络接口904可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器904可以是高速RAM存储器,也可以是非易失性存储器(non-volatile memory,NVM),例如至少一个磁盘存储器。存储器905可选的还可以是至少一个位于远离前述处理器901的存储装置。如图9所示,作为一种计算机可读存储介质的存储器905中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图9所示的电子设备900中,网络接口904可提供网络通讯功能;而用户接口903主要用于为用户提供输入的接口;而处理器901可以用于调用存储器905中存储的设备控制应用程序,以实现:
在预设时间区间内,获取多个目标节点针对目标计算任务的计算结果,其中,上述目标计算任务为智能合约中任务列表中的任一计算任务,各上述计算任务由任务提交方写入上述智能合约;
基于上述目标节点的节点总数量和各上述目标节点对应的计算结果,确定对应的计算结果为正确结果的候选节点;
基于各上述候选节点在提交上述目标计算任务后的诚信值,从各上述候选节点中确定出出块节点。
在一些可行的实施方式中,对于每一上述目标节点,上述处理器901用于:
获取该目标节点针对目标计算任务的加密计算结果,其中,上述加密计算结果由该目标节点基于该目标节点的私钥对针对上述目标计算任务的计算结果进行加密之后、基于任务提交方的公钥进行二次加密后得到;
将上述加密计算结果提交至上述任务提交方,以使上述任务提交方基于上述任务提交方的私钥对上述加密计算结果进行解密之后、基于该目标节点的公钥进行二次解密后得到该目标节点针对上述目标计算任务的计算结果;
从上述任务提交方获取该目标节点针对上述目标计算任务的计算结果。
在一些可行的实施方式中,上述处理器901用于:
从各上述目标节点对应的计算结果中确定各候选计算结果,每一候选计算结果对应至少一个上述目标节点,各上述候选计算结果互不相同;
基于上述目标节点的节点总数量,确定每一上述候选计算结果对应的结果数量占比,每一上述候选计算结果对应的结果数量占比为该候选计算结果对应的目标节点的节点数量与上述节点总数量的比值;
确定各上述结果数量占比中的最高结果数量占比,若上述最高结果数量占比大于预设数量占比,且上述节点总数量大于预设数量,则将上述最高结果数量占比对应的候选计算结果确定为正确结果,并将上述正确计算结果对应的目标节点确定为候选节点。
在一些可行的实施方式中,上述处理器901还用于:
确定各上述目标节点在针对上述目标计算任务进行计算之前的初始诚信值;
对于上述目标节点中的每一上述候选节点,将该候选节点对应的初始诚信值增加第一诚信值;
对于每一非候选节点,将该非候选节点对应的初始诚信值减少第二诚信值,上述非候选节点为各上述目标节点中除各上述候选节点外的其他目标节点。
在一些可行的实施方式中,对于区块链网络中的每一节点,上述处理器901还用于:
响应于该节点的出块请求,若该节点对应的初始诚信值大于预设诚信值,则获取该节点提交的转移资源;
响应于该节点针对上述目标计算任务的注册请求,将该节点的节点信息写入智能合约中与上述目标计算任务对应的节点列表,并将该节点确定为目标节点。
在一些可行的实施方式中,对于每一上述目标节点,上述处理器901还用于:
若确定该目标节点在计算过程中存在恶意行为,则扣除该目标节点对应的转移资源,将该目标节点对应的初始诚信值减少第三诚信值,并取消该目标节点对应的计算结果;
若该目标节点为上述出块节点,则在上述出块节点完成出块之后,向该出块节点提供对应的奖励。
在一些可行的实施方式中,上述任务列表中的每一上述计算任务为分布式计算任务中的任一节点计算任务,上述分布式计算任务包括多级节点计算任务,每一节点计算任务的计算结果是基于与该节点计算任务相关联的下一级节点计算任务的计算结果确定的。
应当理解,在一些可行的实施方式中,上述处理器901可以是中央处理单元(central processing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integratedcircuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
具体实现中,上述电子设备900可通过其内置的各个功能模块执行如上述图2中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,被处理器执行以实现图2中各个步骤所提供的方法,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
上述计算机可读存储介质可以是前述任一实施例提供的装置或电子设备的内部存储单元,例如电子设备的硬盘或内存。该计算机可读存储介质也可以是该电子设备的外部存储设备,例如该电子设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。上述计算机可读存储介质还可以包括磁碟、光盘、只读存储记忆体(read-only memory,ROM)或随机存储记忆体(randomaccess memory,RAM)等。进一步地,该计算机可读存储介质还可以既包括该电子设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该电子设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机指令,上述计算机程序或计算机指令被处理器执行时本申请实施例提供的方法执行图2中各个步骤所提供的方法。
本申请的权利要求书和说明书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或电子设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或电子设备固有的其它步骤或单元。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所揭露的仅为本申请较佳实施例而已,不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (11)
1.一种区块链网络中出块节点的确定方法,其特征在于,所述方法包括:
在预设时间区间内,获取多个目标节点针对目标计算任务的计算结果,其中,所述目标计算任务为智能合约中任务列表中的任一计算任务,各所述计算任务由任务提交方写入所述智能合约;
基于所述目标节点的节点总数量和各所述目标节点对应的计算结果,确定对应的计算结果为正确结果的候选节点;
基于各所述候选节点在提交所述目标计算任务后的诚信值,从各所述候选节点中确定出出块节点。
2.根据权利要求1所述的方法,其特征在于,对于每一所述目标节点,获取该目标节点针对目标计算任务的计算结果,包括:
获取该目标节点针对目标计算任务的加密计算结果,其中,所述加密计算结果由该目标节点基于该目标节点的私钥对针对所述目标计算任务的计算结果进行加密之后、基于任务提交方的公钥进行二次加密后得到;
将所述加密计算结果提交至所述任务提交方,以使所述任务提交方基于所述任务提交方的私钥对所述加密计算结果进行解密之后、基于该目标节点的公钥进行二次解密后得到该目标节点针对所述目标计算任务的计算结果;
从所述任务提交方获取该目标节点针对所述目标计算任务的计算结果。
3.根据权利要求1所述的方法,其特征在于,所述基于所述目标节点的节点总数量和各所述目标节点对应的计算结果,确定对应的计算结果为正确结果的候选节点,包括:
从各所述目标节点对应的计算结果中确定各候选计算结果,每一候选计算结果对应至少一个所述目标节点,各所述候选计算结果互不相同;
基于所述目标节点的节点总数量,确定每一所述候选计算结果对应的结果数量占比,每一所述候选计算结果对应的结果数量占比为该候选计算结果对应的目标节点的节点数量与所述节点总数量的比值;
确定各所述结果数量占比中的最高结果数量占比,若所述最高结果数量占比大于预设数量占比,且所述节点总数量大于预设数量,则将所述最高结果数量占比对应的候选计算结果确定为正确结果,并将所述正确计算结果对应的目标节点确定为候选节点。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
确定各所述目标节点在针对所述目标计算任务进行计算之前的初始诚信值;
对于所述目标节点中的每一所述候选节点,将该候选节点对应的初始诚信值增加第一诚信值;
对于每一非候选节点,将该非候选节点对应的初始诚信值减少第二诚信值,所述非候选节点为各所述目标节点中除各所述候选节点外的其他目标节点。
5.根据权利要求4所述的方法,其特征在于,对于区块链网络中的每一节点,所述方法还包括:
响应于该节点的出块请求,若该节点对应的初始诚信值大于预设诚信值,则获取该节点提交的转移资源;
响应于该节点针对所述目标计算任务的注册请求,将该节点的节点信息写入智能合约中与所述目标计算任务对应的节点列表,并将该节点确定为目标节点。
6.根据权利要求5所述的方法,其特征在于,对于每一所述目标节点,所述方法还包括以下至少一项:
若确定该目标节点在计算过程中存在恶意行为,则扣除该目标节点对应的转移资源,将该目标节点对应的初始诚信值减少第三诚信值,并取消该目标节点对应的计算结果;
若该目标节点为所述出块节点,则在所述出块节点完成出块之后,向该出块节点提供对应的奖励。
7.根据权利要求1所述的方法,其特征在于,所述任务列表中的每一所述计算任务为分布式计算任务中的任一节点计算任务,所述分布式计算任务包括多级节点计算任务,每一节点计算任务的计算结果是基于与该节点计算任务相关联的下一级节点计算任务的计算结果确定的。
8.一种区块链网络中出块节点的确定装置,其特征在于,所述装置包括:
计算结果获取模块,用于在预设时间区间内,获取多个目标节点针对目标计算任务的计算结果,其中,所述目标计算任务为智能合约中任务列表中的任一计算任务,各所述计算任务由任务提交方写入所述智能合约;
候选节点确定模块,用于基于所述目标节点的节点总数量和各所述目标节点对应的计算结果,确定对应的计算结果为正确结果的候选节点;
出块节点确定模块,用于基于各所述候选节点在提交所述目标计算任务后的诚信值,从各所述候选节点中确定出出块节点。
9.一种电子设备,其特征在于,包括处理器和存储器,所述处理器和存储器相互连接;
所述存储器用于存储计算机程序;
所述处理器被配置用于在调用所述计算机程序时,执行如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现权利要求1至7任一项所述的方法。
11.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序或者计算机指令,所述计算机程序或所述计算机指令被处理器执行时实现权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111486505.XA CN116244709A (zh) | 2021-12-07 | 2021-12-07 | 区块链网络中出块节点的确定方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111486505.XA CN116244709A (zh) | 2021-12-07 | 2021-12-07 | 区块链网络中出块节点的确定方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116244709A true CN116244709A (zh) | 2023-06-09 |
Family
ID=86630038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111486505.XA Pending CN116244709A (zh) | 2021-12-07 | 2021-12-07 | 区块链网络中出块节点的确定方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116244709A (zh) |
-
2021
- 2021-12-07 CN CN202111486505.XA patent/CN116244709A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7420890B2 (ja) | ブロックチェーンで実施されるイベントロック暗号化の方法及びシステム | |
Lu et al. | Zebralancer: Private and anonymous crowdsourcing system atop open blockchain | |
US11159526B2 (en) | System and method for decentralized-identifier authentication | |
US10917246B2 (en) | System and method for blockchain-based cross-entity authentication | |
US20210075589A1 (en) | System and method for blockchain-based cross-entity authentication | |
EP3613189B1 (en) | Secure blockchain-based consensus | |
US11429967B2 (en) | Mechanism for efficient validation of finality proof in lightweight distributed ledger clients | |
US10832230B2 (en) | Scalable and distributed shared ledger transaction management | |
US20200313884A1 (en) | Smart contract execution using distributed coordination | |
US20210256016A1 (en) | Blockchain system and method | |
CN109495592B (zh) | 数据协同方法及电子设备 | |
CN110892674A (zh) | 区块链的交易生成方法和区块链的块验证方法 | |
US20230037932A1 (en) | Data processing method and apparatus based on blockchain network, and computer device | |
CN111416709B (zh) | 基于区块链系统的投票方法、装置、设备及存储介质 | |
US11831761B2 (en) | Computer-implemented systems and methods for an accumulator-based protocol for the distribution of tasks across a computer network | |
CN110990790B (zh) | 一种数据处理方法及设备 | |
Baniata et al. | Prifob: a privacy-aware fog-enhanced blockchain-based system for global accreditation and credential verification | |
CN111385096A (zh) | 一种区块链网络、签名处理方法、终端及存储介质 | |
CN110276693B (zh) | 保险理赔方法及系统 | |
Lai et al. | Blockchain for achieving accountable outsourcing computations in edge computing | |
KR102494873B1 (ko) | 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 거래 수행장치 | |
JP2023106055A (ja) | エビデンス管理方法、エビデンス管理システム及びノード | |
CN116244709A (zh) | 区块链网络中出块节点的确定方法及相关装置 | |
Lu et al. | ZebraLancer: Decentralized crowdsourcing of human knowledge atop open blockchain | |
Li et al. | Audit as You Go: A Smart Contract‐Based Outsourced Data Integrity Auditing Scheme for Multiauditor Scenarios with One Person, One Vote |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40089556 Country of ref document: HK |