CN110210856A - 区块链数据处理方法、装置、服务器及存储介质 - Google Patents
区块链数据处理方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN110210856A CN110210856A CN201910365838.3A CN201910365838A CN110210856A CN 110210856 A CN110210856 A CN 110210856A CN 201910365838 A CN201910365838 A CN 201910365838A CN 110210856 A CN110210856 A CN 110210856A
- Authority
- CN
- China
- Prior art keywords
- node
- contribution
- block
- index
- margin
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- 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/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- Finance (AREA)
- General Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Probability & Statistics with Applications (AREA)
- Economics (AREA)
- Computer Security & Cryptography (AREA)
- Technology Law (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Development Economics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种区块链数据处理方法、装置、服务器及存储介质,其中方法包括:响应于接收到的未处理的业务数据,指示区块链网络包括的多个节点分别将业务数据打包成区块;获取多个节点中每个节点的贡献指数;基于贡献指数从多个节点中确定目标节点,并指示目标节点执行出块操作。采用本发明实施例,可减少共识过程耗时,提高了出块效率。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种区块链数据处理方法、装置、服务器及存储介质。
背景技术
区块链网络以其去中心化和共识机制等优点成为当前研究的热点。其中,区块链网络的共识机制是区块链网络的核心,所谓共识机制可以指:通过共识算法从区块链网络的多个节点中选择出某一节点来完成某次出块操作。目前常用的共识算法可包括工作量证明(Proof of Work,PoW)算法,PoW算法主要是通过计算符合某一比特币区块头的哈希散列值争夺出块操作的权利,这个过程需要通过大量的计算实现,消耗大量资源,而且共识过程耗时较长,从而导致区块链网络的出块效率较低。
发明内容
本发明实施例提供了一种区块链数据处理方法、装置、服务器及存储介质,实现了基于区块链网络中每一个节点的贡献指数选择用于出块的目标节点,减少共识过程耗时,提高了出块效率。
第一方面,本发明实施例提供了一种区块链数据处理方法,该方法包括:
响应于接收到的未处理的业务数据,指示区块链网络包括的多个节点分别将业务数据打包成区块;
获取多个节点中每个节点的贡献指数;
基于贡献指数从多个节点中确定目标节点,并指示目标节点执行出块操作。
可选的,获取多个节点中每个节点的贡献指数,包括:
从多个节点中每个节点的贡献指数账户中确定每个节点对应的贡献信息;
基于贡献信息,确定每个节点的贡献指数。
可选的,贡献信息包括贡献值以及与贡献值对应的贡献时间,基于贡献信息,确定每个节点的贡献指数,包括:
根据所述每个节点各个贡献值对应的贡献时间,确定出所述每个节点满足预设时间条件的贡献值;
根据确定出的所述每个节点的贡献值和对应的贡献时间计算所述每个节点的贡献指数。
可选的,基于贡献指数从多个节点中确定目标节点,包括:
基于每个节点的贡献指数计算每个节点的出块概率;
根据每个节点的出块概率从多个节点中确定目标节点。
可选的,基于每个节点的贡献指数计算每个节点的出块概率,包括:
基于每个节点的贡献指数计算得到总贡献指数;
根据每个节点的贡献指数与总贡献指数计算得到每个节点的出块概率。
可选的,数据处理方法还包括:
为多个节点中每一个节点创建贡献指数账户;
当检测到第一节点为对应的用户提供服务时,获取本次服务的服务信息,其中第一节点为多个节点中的任一节点;
根据服务信息确定第一节点提供本次服务所获得的贡献值,以及对应的贡献时间;
将所获得的贡献值以及对应的贡献时间存储于第一节点对应的贡献指数账户中。
可选的,服务信息包括服务类型、服务数据量和服务时间,根据服务信息确定第一节点提供本次服务所获得的贡献值,以及对应的贡献时间,包括:
获取与服务类型对应的基础贡献值,服务类型包括数据查询业务、数据存储业务以及出块业务中的任意一种或多种;
根据服务数据量和预设贡献值增量规则确定贡献值增量;
根据基础贡献值和贡献值增量计算得到第一节点提供本次服务所获得的贡献值,并将服务时间确定为第一节点提供本次服务的贡献时间。
第二方面,本发明实施例提供了一种区块链数据处理装置,该区块链数据处理装置配置于区块链网络中的任一节点中,该装置包括:
处理单元,用于响应于接收到的未处理的业务数据,指示区块链网络包括的多个节点分别将业务数据打包成区块;
获取单元,用于获取多个节点中每个节点的贡献指数;
确定单元,用于基于贡献指数从多个节点中确定目标节点;
处理单元,还用于指示目标节点执行出块操作。
可选的,获取单元具体用于:
从多个节点中每个节点的贡献指数账户中确定每个节点的贡献信息;
基于贡献信息,确定每个节点的贡献指数。
可选的,获取单元在基于贡献信息,确定每个节点的贡献指数时,执行如下操作:
根据每个节点各个贡献值对应的贡献时间,确定出每个节点满足预设时间条件的贡献值;
根据确定出的每个节点的贡献值和对应的贡献时间计算每个节点的贡献指数。
可选的,确定单元在基于贡献指数从多个节点中确定目标节点时,执行如下操作:
基于每个节点的贡献指数计算每个节点的出块概率;
根据每个节点的出块概率从多个节点中确定目标节点。
可选的,确定单元在基于每个节点的贡献指数计算每个节点的出块概率时,执行如下操作:
基于每个节点的贡献指数计算得到总贡献指数;
根据每个节点的贡献指数与总贡献指数计算得到每个节点的出块概率。
可选的,数据处理装置还包括创建单元和存储单元:
创建单元,用于为多个节点中每个节点创建贡献指数账户;
获取单元,还用于当检测到第一节点为对应的用户提供服务时,获取本次服务的服务信息,其中第一节点为多个节点中的任一节点;
确定单元,还用于根据服务信息确定第一节点提供本次服务所获得的贡献值,以及对应的贡献时间;
存储单元,用于将所获得的贡献值以及对应等贡献时间存储于第一节点对应的贡献指数账户中。
可选的,服务信息包括服务类型、服务数据量和服务时间;确定单元在根据服务信息确定第一节点提供本次服务所获得的贡献值,以及对应的贡献时间时,执行如下操作:
获取与服务类型对应的基础贡献值,服务类型包括数据查询业务、数据存储业务以及出块业务中的任意一种或多种;
根据服务数据量和预设贡献值增量规则确定贡献值增量;
根据基础贡献值和贡献值增量计算得到第一节点提供本次服务所获得的贡献值,并将服务时间确定为第一节点提供本次服务的贡献时间。
第三方面,本发明实施例提供了服务器,该服务器可以为区块链网络中的任一节点设备,包括处理器、网络接口和存储器,处理器、网络接口和存储器相互连接,其中,存储器用于存储支持服务器执行上述方法的计算机程序,计算机程序包括程序指令,处理器被配置用于调用程序指令,执行上述第一方面及其任一种可选的区块链数据处理方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时使处理器执行上述第一方面及其任一种可选的区块链数据处理方法。
本发明实施例中,响应于接收到的未处理的业务数据,指示区块链网络包括的多个节点分别将业务数据打包成区块;获取多个节点中每个节点的贡献指数;进一步的,基于贡献指数从多个节点中确定目标节点,并指示目标节点执行出块操作;与现有的PoW共识算法相比,基于每个节点的贡献指数为选择目标节点以完成出块,减少了出块节点的选择过程中所需的计算量和时间,提高了出块效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种区块链网络的示意图;
图2是本发明实施例提供的一种区块链数据处理方法的流程示意图;
图3是本发明实施例提供的另一种区块链数据处理方法的流程示意图;
图4是本发明实施例提供的一种区块链数据处理装置的结构示意图;
图5是本发明实施例提供的一种服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的区块链数据处理方法可以应用于区块链网络中,具体应用于联盟链中,例如不同公司组成的电子商务联盟、物流联盟、食品溯源联盟等等。参考图1,为本发明实施例提供的一种区块链网络的结构示意图。
如图1所示的区块链网络中可包括多个节点例如节点1、节点2、节点3和第四节点,多个节点可以是终端或者服务器(示例性地,本发明实施例中假设多个节点为服务器),多个节点中的每个节点都可执行区块链网络中的出块业务。区块链网络可以为多个节点中的每个节点创建贡献指数账户,比如为节点1创建第一贡献指数账户,为节点2创建第二贡献指数账户2以及为节点3创建第三贡献指数账户。
在一个实施例中,当检测到每个节点为对应的用户提供服务时,区块链网络会依据服务信息计算此次服务的贡献信息。其中,贡献信息中可包括贡献值和对应的贡献时间;服务信息包括服务类型和服务数据量,不同服务类型对应的贡献值不同,服务数据量越大,获得的贡献值越高。区块链网络将计算出的每个节点贡献值和与贡献值对应的贡献时间作为贡献信息存储在每个节点的贡献指数账户中。由此可知,每个节点对应的贡献指数账户中存储有自贡献指数账户建立到目前的时间段内,该节点的所有贡献信息。对于贡献值和贡献时间的确定方法将在后面的实施例中详细描述。
在一个实施例中,如果区块链网络接收到未处理的业务数据,区块链网络指示区块链网络包括的多个节点分别将未处理的业务数据打包成区块;然后通知多个节点中的每个节点进行出块节点选举过程,也即从多个节点中选择执行关于未处理的业务数据的出块业务的目标节点,或者说选择将哪个节点打包的区块作为针对未处理的业务数据的目标区块。在出块节点的选举过程中,区块链网络首先可以从每个节点的贡献指数账户中获取每个节点的贡献指数;再基于每个节点的贡献指数从多个节点中确定出目标节点,然后指示被选举出的目标节点执行出块操作。
可选的,区块链网络获取每个节点的贡献指数的实施方式可以为:根据每个节点的贡献指数账户中包括的贡献值、贡献时间和当前***时间确定的。可选的,基于每个节点的贡献指数从多个节点中确定出目标节点的实施方式可以是:根据每个节点的贡献指数确定每个节点的出块概率;再基于每个节点的出块概率从多个节点中确定出目标节点。该部分的可选的实施方式将在后面的实施例中具体描述。
在一个实施例中,被选举出来的目标节点出块完成后,可以发起出块完成的通知以告知每个节点关于此次未处理的业务数据的出块完成。本发明实施例所提供的区块链网络中,基于每个节点的贡献指数选择用于出块的目标节点,由于每个节点的贡献指数可以是基于每个节点的贡献信息得到的,每个节点的贡献信息是预先存储的,因此获取每个节点的贡献指数的所需的时间较少,进而使得选择目标节点的时间较少,从而可提高出块效率。
基于图1所示的区块链网络,本发明实施例提供了一种区块链数据处理方法,如图2所示。图2的区块链数据处理方法可以应用于区块链网络中,区块链网络中可包括多个节点,区块链数据处理方法可由区块链网络执行,区块链数据处理方法可包括如下步骤:
S201、响应于接收到的未处理的业务数据,指示区块链网络包括的多个节点分别将业务数据打包成区块。
在一个实施例中,业务数据,也可称为交易,可以指区块链网络中的未被确认的任何数据,例如数字货币交易,虚拟币交易,文件、身份信息或物流信息等信息的变更,本发明实施例不做限定。
应当理解的,区块链网络是由多个区块之间互相连接形成的单式链式结构,也即区块是区块链网络中的数据元素,因此区块链网络需要将未处理的业务数据打包成区块。
一个区块中可包括一个或多个业务数据,区块的大小限制在在1M左右。区块可由区块头和区块体组成,区块头中可包含本区块的身份识别信息、时间戳、业务数据的数据量、区块大小和头哈希值等信息。其中,本区块的头哈希值和下一个区块的父哈希值是完全相同的,应当理解的,对于相邻的两个区块,在前区块的头哈希值与在后区块的父哈希值相同是为了实现两个相邻区块的相互串联以得到一条有序连接的区块链。这样一来,通过区块链中的任意区块,都可以追溯这个区块之前或之后的所有区块;区块体中可包括经过验证的未处理的业务数据。本发明实施例中,区块链网络包括的多个节点分别对接收到的未处理的业务数据进行打包处理,得到每个节点对应的区块。
S202、获取多个节点中每个节点的贡献指数。
在一个实施例中,每个节点的贡献指数可以是用于评价预设时间段内每个节点提供过的服务的重要性的指标,预设时间可以为一个月、十天或者一年、或者所有时间等任意时间段。
每个节点的贡献指数是根据每个节点的贡献信息确定的。示例性地,获取多个节点中每个节点的贡献指数,包括:从多个节点中每个节点的贡献指数账户中确定每个节点对应的贡献信息,贡献信息包括贡献值以及与贡献值对应的贡献时间;基于贡献信息,确定每个节点的贡献指数。其中,每个节点的贡献指数账户是区块链网络预先为每个节点创建的,在区块链网络为每个节点创建贡献指数账户后,区块链网络监测每个节点为对应的用户提供服务情况,根据提供服务器情况确定每个节点的贡献指数。
下面以多个节点中包括的第一节点为例,介绍区块链网络如何根据每个节点为对应的用户提供服务情况,确定每个节点的贡献指数,其中,第一节点为区块链网络包括的多个节点中的任意一个节点。具体地,为多个节点中每个节点创建贡献指数账户;当检测到第一节点为对应的用户提供服务时,获取本次服务的服务信息;根据服务信息确定第一节点提供本次服务所获得的贡献值,以及对应的贡献时间;将所获得的贡献值以及对应的贡献时间存储于第一节点对应的贡献指数账户中。
在一个实施例中,服务信息包括服务类型、服务数据量和服务时间,不同的服务类型对应的贡献值不同,不同数据量对应的贡献值也不相同,根据服务信息确定第一节点提供本次服务所获得的贡献值,以及对应的贡献时间,可包括:获取与服务类型对应的基础贡献值,其中,服务类型包括数据查询业务、数据存储业务以及出块业务中的任意一种或多种;根据服务数据量和预设贡献值增量规则确定贡献值增量;根据基础贡献值和贡献值增量计算得到第一节点提供本次服务所获得的贡献值,并将服务时间确为第一节点提供本次服务的贡献时间。
可选的,区块链网络可以根据各个服务类型的难易程度或者耗时程度预先为不同的服务类型设置相应的基础贡献值,例如数据查询对应的基础贡献值可以为X;数据存储对应的基础贡献值为Y;出块业务对应的基础贡献值为Z。预设贡献值增量规则可以是:将服务数据量按照大小划分为多个数量等级,每个等级对应固定数量的增量贡献值。根据服务数据量和预设贡献值增量规则确定贡献增量值可以指判断服务数据量所属的数量等级,将数量等级中的增量贡献值作为与服务数据量对应的贡献值增量。
例如,将服务数据量划分为三个等级:将数量小于A的服务数据量为第一等级,大于B的服务数据量划分为第三等级,大于A小于B的服务数据量划分为第二等级;再假设,第一等级对应的增量贡献值X,第二等级对应的增量贡献值Y,第三等级对应的增量贡献值为Z。如果检测到第一节点为对应的用户提供服务时,本次服务的服务信息中包括的服务数据量落入第一数据量等级,则将X作为与本次服务的服务数据量对应的贡献值增量。
S203、基于贡献指数从多个节点中确定目标节点,并指示目标节点执行出块操作。
在一个实施例中,由前述可知,区块链网络中每个节点都可以将未处理的业务数据打包成区块,但是并不是将所有节点对应的区块都连接到区块链网络已有的区块上以逐渐形成更长的区块链网络,而是需要从多个节点打包成的多个区块中选择出目标区块,将目标区块作为连接到区块链网络中已有区块上的区块。上述过程可以称为出块,目标节点执行出块操作是指将目标节点对未处理的业务数据打包得到的区块作为本次的目标区块。
在一个实施例中,基于贡献指数从多个节点中确定目标节点的实施方式可以为:预先设定一个贡献指数阈值;从多个节点的贡献指数中选择出预设时间范围内大于贡献指数阈值的贡献指数对应的节点作为目标节点。如果通过上述方式确定出的目标节点的数量大于1,则还可以扩大确定贡献指数的预设时间范围,重新计算各个目标节点的贡献指数,从各个目标节点中确定出贡献指数较大的目标节点。
例如,假设预设范围为一个月,区块链网络选取最近一个月的每个节点的贡献信息来确定每个节点的贡献指数,然后基于贡献指数和贡献指数阈值从多个节点中选择两个目标节点。此时,区块链网络可以从两个目标节点的每个目标节点的贡献指数账户中获取每个目标节点的最近两个月的贡献信息,重新计算每个目标节点的贡献指数,然后从两个目标节点中选择重新计算后贡献指数较大的目标节点作为针对目标区块的出块节点。
本发明实施例中,响应于接收到的未处理的业务数据,指示区块链网络包括的多个节点分别将业务数据打包成目标区块;获取多个节点中每个节点的贡献指数;进一步的,基于贡献指数从多个节点中确定出目标节点,并指示目标节点执行出块操作;与现有的PoW共识算法相比,基于贡献指数选择出块业务的目标节点以完成出块,减少了出块节点的选择过程中所需的计算量和时间,提高了出块效率。
参见图3,为本发明实施例提供的另一种区块链数据处理方法,图3所示的区块链数据处理方法可包括:
S301、响应于接收到的未处理的业务数据,指示区块链网络包括的多个节点分别将业务数据打包成区块。
S302、获取多个节点中每个节点的贡献指数。
由图2的实施例可知,步骤S302的实施方式具体可以为:从多个节点中每个节点的贡献指数账户中确定每个节点对应的贡献信息;基于贡献信息,确定每个节点的贡献指数。示例性地,贡献信息包括贡献值以及与贡献值对应的贡献时间,上述基于贡献信息,确定每个节点的贡献指数可以包括:根据每个节点各个贡献值对应的贡献时间,确定出每个节点满足预设时间条件的贡献值;根据确定出的每个节点的贡献值和对应的贡献时间计算每个节点的贡献指数。
其中,每个节点可能包括多个贡献值,每个贡献值对应一个贡献时间,简单来说,基于每个节点对应的贡献信息,确定每个节点的贡献指数可以指根据每个节点包括的多个贡献值和多个贡献值中每个贡献值对应的贡献时间确定每个节点的贡献指数。预设时间条件可以指一个时间范围,例如预设时间条件可以为最近一个月、最近一周、一年等任意时间段,满足预设时间条件的贡献值可以指落入预设时间条件内的贡献时间对应的贡献值,例如,假设预设时间条件为2019年3月1日-2019年3月29日,某个节点的贡献指数账户中包括的贡献信息有贡献值1对应的贡献时间为2018年11月28日;贡献值5对应的贡献时间为2019年3月15日;贡献值7对应的贡献时间为2019年3月29日。可见,贡献时间2019年3月15日和2019年3月29日满足预设时间条件,所以贡献值5和贡献值7即为该节点满足预设时间条件的贡献值。
可选的,以多个节点中包括的任意节点为例,上述根据确定出的每个节点的贡献值和对应的贡献时间计算每个节点的贡献指数,可以通过下述公式(1)实现:
其中,P表示任意节点的贡献指数,i表示任意节点提供的第i次服务,n表示在预设时间段内任意节点提供的服务次数,ci表示任意节点提供第i次服务所获得的贡献值,ti表示于第i次服务所获得的贡献值对应的贡献时间,now表示当前***时间。
举例来说,假设区块链网络中包括3个节点,表示为v1,v2和v3;当前***时间为2019年3月29日(为了简单说明,时间后面省去时分秒)。对于v1来说,假设v1的贡献指数账户中存储的贡献信息为:2019年3月1日提供服务所获得的贡献值为2;2019年3月8日提供服务所获取的贡献值为2;2019年3月9日提供服务所获得的贡献值为3;通过公式(1)可以计算出v1的贡献指数p1:
P1=(29-1)*2+(29-8)*2+(29-9)*3=158
对于v2来说,假设v2的贡献指数账户中存储的贡献信息为:2019年3月2日提供服务所获得的贡献值为1;2019年3月21日提供服务所获得的贡献值为12;通过公式(1)可计算出v2的贡献指数p2:
P2=(29-2)*1+(29-21)*12=123
对于v3来说,假设v3的贡献指数账户中存储的贡献信息为:2019年3月1日提供服务所获得的贡献值为3;2019年3月3日提供服务所获得的贡献值为2;2019年3月9日提供服务所获得的贡献值为1;2019年3月17日提供服务所获得的贡献值为1;通过公式(1)可计算v3的贡献指数p3:
P3=(29-1)*3+(29-3)*2+(29-9)*1+(29-17)*1=168
S303、基于每个节点的贡献指数计算每个节点的出块概率;
在确定出多个节点中每个节点的贡献指数之后,区块链网络可以基于每个节点的贡献指数从多个节点中确定出目标节点,可选的,区块链网络可通过步骤S303-步骤S304从多个节点中确定出目标节点。
步骤S303的实施方式可包括:基于每个节点的贡献指数计算得到总贡献指数;根据每个节点的贡献指数与总贡献指数计算得到每个节点的出块概率。其中,总贡献指数是指多个节点中每个节点的贡献指数的和,例如基于步骤S302中的举例,区块链网络中包括v1,v2和v3三个节点,每个节点对应的贡献指数分别为P1,P2和P3,总贡献指数P等于P1+P2+P3=449。在一个实施例中,上述根据每个节点的贡献指数与总贡献指数计算得到每个节点的出块概率,可通过如下公式(2)表示:
其中,poi表示第i个节点的出块概率,Pi表示第i个节点的贡献指数,∑P表示总贡献指数。
基于公式(2)和每个节点的贡献指数便可确定出每个节点的出块概率,例如,基于步骤S302中的举例,节点v1的出块概率为158/499=35.1%;节点v2的出块概率为123/499=27.3%;节点v3的出块概率为168/499=37.4%。
S304、根据每个节点的出块概率从多个节点中确定目标节点。
S305、指示目标节点执行出块操作。
在一个实施例中,步骤S304基于每个节点的出块概率从多个节点中确定出目标节点的实施方式可以为:选择出块概率最大的节点确定为目标节点。例如,在上述v1,v2和v3三个节点中,v3的出块概率最高,将v3确定为目标节点。再一个实施例中,步骤S304的实施方式还可以为:选择出块概率大于出块概率阈值的节点作为目标节点,例如,假设出块概率阈值为36%,在上述v1,v2和v3三个节点中,v1和v2的出块概率均小于36%,v3的出块概率大于36%,因此可以将v3确定为目标节点。
确定出目标节点之后,指示目标节点执行出块业务。可选的,在目标节点执行完出块操作后,区块链网络根据目标节点对应的区块中包括的服务类型以及包括的服务数据量大小为目标节点记录贡献值和贡献时间,存储到目标节点的贡献指数账户中。
本发明实施例中,响应于接收到的未处理的业务数据,指示区块链网络包括的多个节点分别将业务数据打包成区块;获取多个节点中每个节点的贡献指数;基于每个节点的贡献指数计算每个节点的出块概率;进一步的,根据每个节点的出块概率从多个节点中确定出目标节点,并指示目标节点执行出块操作。在上述确定目标节点的过程中,基于每个节点的贡献指数确定每个节点的出块概率的方式实现简单计算量少,并且每个节点贡献指数是预先存储在每个节点的贡献指数账户中的,区块链网络获取每个节点的贡献指数过程耗时较少,从而提高了出块效率。
参考图4,为本发明实施例提供的一种区块链数据处理装置的结构示意图,区块链数据处理装置配置于区块链网络中的任一节点中,如图4所示的区块链数据处理装置,可包括:处理单元401、获取单元402和确定单元403:
处理单元401,用于响应于接收到的未处理的业务数据,指示区块链网络包括的多个节点分别将业务数据打包成区块;
获取单元402,用于获取多个节点中每个节点的贡献指数;
确定单元403,用于基于贡献指数从多个节点中确定目标节点;
处理单元401,还用于指示目标节点执行出块操作。
可选的,获取单元402具体用于:
从多个节点中每个节点的贡献指数账户中获取每个节点的贡献信息;
基于贡献信息,确定每个节点的贡献指数。
可选的,贡献信息包括贡献值以及与贡献值对应的贡献时间,获取单元402在基于贡献信息,确定每个节点的贡献指数时,执行如下操作:
根据每个节点各个贡献值对应的贡献时间,确定出每个节点满足预设时间条件的贡献值;
根据确定出的每个节点的贡献值和对应的贡献时间计算每个节点的贡献指数。
可选的,确定单元403在基于贡献指数从多个节点中确定目标节点时,执行如下操作:
基于每个节点的贡献指数计算每个节点的出块概率;
根据每个节点的出块概率从多个节点中确定目标节点。
可选的,确定单元403在基于每个节点的贡献指数确定每个节点的出块概率时,执行如下操作:
基于每个节点的贡献指数计算得到总贡献指数;
根据每个节点的贡献指数与总贡献指数计算得到每个节点的出块概率。
可选的,区块链数据处理装置还包括创建单元404和存储单元405:
创建单元404,用于为多个节点中每个节点创建贡献指数账户;
获取单元402,还用于当检测到第一节点为对应的用户提供服务时,获取本次服务的服务信息,其中第一节点为多个节点中的任一节点;
确定单元403,还用于根据服务信息确定第一节点提供本次服务所获得的贡献值,以及对应的贡献时间;
存储单元405,用于将所获得的贡献值以及对应的贡献时间存储于第一节点对应的贡献指数账户中。
可选的,服务信息包括服务类型、服务数据量和服务时间,确定单元403在根据服务信息确定第一节点提供本次服务所获得的贡献值,以及对应的贡献时间时,执行如下操作:
获取与服务类型对应的基础贡献值,服务类型包括数据查询业务、数据存储业务以及出块业务中的任意一种或多种;
根据服务数据量和预设贡献值增量规则确定贡献值增量;
根据基础贡献值和贡献值增量计算得到第一节点提供本次服务所获得的贡献值,并将服务时间确定为第一节点提供本次服务的贡献时间。
本发明实施例中,响应于接收到的未处理的业务数据,处理单元401指示区块链网络包括的多个节点分别将业务数据打包成区块;获取单元402获取多个节点中每个节点的贡献指数;进一步的,确定单元403基于贡献指数从多个节点中确定出目标节点,并处理单元404指示目标节点执行出块操作;与现有的PoW共识算法相比,基于每个节点的贡献指数选择目标节点以完成出块过程中,减少了出块节点的选择所需的计算量和时间,提高了出块效率。
可以理解的是,本实施例的数据处理装置的各功能单元、单元的功能可根据上述图2和图3所示的方法实施例中的方法具体实现,其具体实现过程可以参照上述图2和图3所示的方法实施例的相关描述,此处不再赘述。
参见图5,是本发明实施例提供的一种服务器的示意性框图。如图5所示的本实施例中的服务器可以为区块链网络中任一节点设备,服务器可以包括:一个或多个处理器501;一个或多个网络接口502和存储器503。上述处理器501、网络接口502和存储器503通过总线504连接。存储器503用于存储计算机程序,计算机程序包括程序指令,处理器501用于执行存储器503存储的程序指令。其中,处理器501被配置用于调用程序指令执行:
响应于接收到的未处理的业务数据,指示区块链网络包括的多个节点分别将业务数据打包成区块;
获取多个节点中每个节点的贡献指数;
基于贡献指数从多个节点中确定目标节点,并指示目标节点执行出块操作。
可选的,处理器501在获取多个节点中每个节点的贡献指数时,执行如下操作:
从多个节点中每个节点的贡献指数账户中获取每个节点对应的贡献信息;
基于贡献信息,确定每个节点的贡献指数:
可选的,贡献信息包括贡献值以及与贡献值对应的贡献时间,处理器501基于贡献信息,确定每个节点的贡献指数时,执行如下操作:
根据每个节点各个贡献值对应的贡献时间,确定出每个节点满足预设时间条件的贡献值;
根据确定出的每个节点的贡献值和对应的贡献时间计算每个节点的贡献指数。
可选的,处理器501在基于每个节点的贡献指数从多个节点中确定目标节点时,执行如下操作:
基于每个节点的贡献指数计算每个节点的出块概率;
根据每个节点的出块概率从多个节点中确定目标节点。
可选的,处理器501在基于每个节点的贡献指数计算每个节点的出块概率时,执行如下操作:
基于每个节点的贡献指数确定计算得到总贡献指数;
根据每个节点的贡献指数与总贡献指数计算得到每个节点的出块概率。
可选的,处理器501被配置用于调用程序指令还执行:
为多个节点中每一个节点创建贡献指数账户;
当检测到第一节点为对应的用户提供服务时,获取本次服务的服务信息,其中第一节点为多个节点中的任一节点;
根据服务信息确定第一节点提供本次服务所获得的贡献值,以及对应的贡献时间;
将第一节点所获得的贡献值以及对应的贡献时间存储于第一节点对应的贡献指数账户中。
可选的,服务信息包括服务类型、服务数据量和服务时间,处理器501在根据服务信息确定第一节点提供本次服务所获得的贡献值,以及对应的贡献时间时,执行如下操作:
获取与服务类型对应的基础贡献值,服务类型包括数据查询业务、数据存储业务以及出块业务中的任意一种或多种;
根据服务数据量和预设贡献值增量规则确定贡献值增量;
根据基础贡献值和贡献值增量计算得到第一节点提供本次服务所获得的贡献值,并将服务时间确定为第一节点提供本次服务的贡献时间。
应当理解,在本发明实施例中,所称处理器501可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
网络接口502用于在连接网络时接收或发送数据。
该存储器503可以包括只读存储器和随机存取存储器,并向处理器501提供指令和数据。存储器503的一部分还可以包括非易失性随机存取存储器。例如,存储器503还可以存储设备类型的信息。
具体实现中,本发明实施例中所描述的处理器501可执行图2和图3提供的区块链数据处理方法实施例中所描述的实现方式,也可执行图4所描述的区块链数据处理装置的实现方式,在此不再赘述。
在本发明的实施例中提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令被处理器执行时实现:
响应于接收到的未处理的业务数据,指示区块链网络包括的多个节点分别将业务数据打包成目标区块;
获取多个节点中每个节点的贡献指数;
基于贡献指数从多个节点中确定目标节点,并指示目标节点执行出块操作。
可选的,程序指令在被处理器执行获取多个节点中每个节点的贡献指数时,执行如下操作:
从多个节点中每个节点的贡献指数账户中获取每个节点的贡献信息;
基于的贡献信息,确定每个节点的贡献指数。
可选的,贡献信息包括贡献值以及与贡献值对应的贡献时间,程序指令被处理器执行基于贡献信息,确定每个节点的贡献指数时,执行如下操作:
根据每个节点各个贡献值对应的贡献时间,确定出每个节点满足预设时间条件的贡献值;
根据确定出的每个节点的贡献值和对应的贡献时间计算每个节点的贡献指数。
可选的,程序指令被处理器执行基于贡献指数从多个节点中确定目标节点时,执行如下操作:
基于每个节点的贡献指数计算每个节点的出块概率;
根据每个节点的出块概率从多个节点中确定目标节点。
可选的,程序指令被处理器执行基于每个节点的贡献指数计算每个节点的出块概率时,执行如下操作:
基于每个节点的贡献指数计算得到总贡献指数;
根据每个节点的贡献指数与总贡献指数计算得到每个节点的出块概率。
可选的,程序指令被处理器执行时还实现:
为多个节点中每一个节点创建贡献指数账户;
当检测到第一节点为对应的用户提供服务时,获取本次服务的服务信息,其中第一节点为多个节点中的任一节点;
根据服务信息确定第一节点提供本次服务所获得的贡献值,以及对应的贡献时间;
将所获得的贡献值以及对应的贡献时间存储于第一节点对应的贡献指数账户中。
可选的,服务信息包括服务类型、服务数据量和服务时间,程序指令被处理器执行根据服务信息确定第一提供本次服务所获得的贡献值,以及对应的贡献时间时,执行如下操作:
获取与服务类型对应的基础贡献值,服务类型包括数据查询业务、数据存储业务以及出块业务中的任意一种或多种;
根据服务数据量和预设贡献值增量规则确定贡献值增量;
根据基础贡献值和贡献值增量计算得到第一节点提供本次服务所获得的贡献值,并将服务时间确定为每第一节点提供本次服务的贡献时间。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (10)
1.一种区块链数据处理方法,其特征在于,所述方法包括:
响应于接收到的未处理的业务数据,指示区块链网络包括的多个节点分别将所述业务数据打包成区块;
获取所述多个节点中每个节点的贡献指数;
基于所述贡献指数从所述多个节点中确定目标节点,并指示所述目标节点执行出块操作。
2.如权利要求1所述的方法,其特征在于,所述获取所述多个节点中每个节点的贡献指数,包括:
从所述多个节点中每个节点的贡献指数账户中确定所述每个节点的贡献信息;
基于所述贡献信息,确定所述每个节点的贡献指数。
3.如权利要求2所述的方法,其特征在于,所述贡献信息包括贡献值以及与所述贡献值对应的贡献时间,所述基于所述贡献信息,确定所述每个节点的贡献指数,包括:
根据所述每个节点各个贡献值对应的贡献时间,确定出所述每个节点满足预设时间条件的贡献值;
根据确定出的所述每个节点的贡献值和对应的贡献时间计算所述每个节点的贡献指数。
4.如权利要求1~3中任一项所述的方法,其特征在于,所述基于所述贡献指数从所述多个节点中确定目标节点,包括:
基于所述每个节点的贡献指数计算每个节点的出块概率;
根据所述每个节点的出块概率从所述多个节点中确定目标节点。
5.如权利要求4所述的方法,其特征在于,所述基于所述每个节点的贡献指数计算每个节点的出块概率,包括:
基于所述每个节点的贡献指数计算得到总贡献指数;
根据所述每个节点的贡献指数与所述总贡献指数计算得到所述每个节点的出块概率。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
为所述多个节点中每个节点创建贡献指数账户;
当检测到第一节点为对应的用户提供服务时,获取本次服务的服务信息,其中所述第一节点为所述多个节点中的任一节点;
根据所述服务信息确定所述第一节点提供本次服务所获得的贡献值,以及对应的贡献时间;
将所述所获得的贡献值以及所述对应的贡献时间存储于所述第一节点的贡献指数账户中。
7.如权利要求6所述的方法,其特征在于,所述服务信息包括服务类型、服务数据量和服务时间,所述根据所述服务信息确定所述第一节点提供本次服务所获得的贡献值,以及对应的贡献时间,包括:
获取与所述服务类型对应的基础贡献值,所述服务类型包括数据查询业务、数据存储业务以及出块业务中的任意一种或多种;
根据所述服务数据量和预设贡献值增量规则确定贡献值增量;
根据所述基础贡献值和所述贡献值增量计算得到所述第一节点提供本次服务所获得的贡献值,并将所述服务时间确定为所述第一节点提供本次服务的贡献时间。
8.一种区块链数据处理装置,其特征在于,所述区块链数据处理装置配置于区块链网络中的任一节点中,所述装置包括:
处理单元,用于响应于接收到的未处理的业务数据,指示区块链网络包括的多个节点分别将所述业务数据打包成区块;
获取单元,用于获取所述多个节点中每个节点的贡献指数;
确定单元,用于基于所述贡献指数从所述多个节点中确定目标节点;
所述处理单元,还用于指示所述目标节点执行出块操作。
9.一种服务器,其特征在于,包括处理器、网络接口和存储器,所述处理器、所述网络接口和所述存储器相互连接,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,处理器被配置用于调用所述程序指令,执行权利要求1-7任一项所述的区块链数据处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-7任一项所述的区块链数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910365838.3A CN110210856A (zh) | 2019-04-30 | 2019-04-30 | 区块链数据处理方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910365838.3A CN110210856A (zh) | 2019-04-30 | 2019-04-30 | 区块链数据处理方法、装置、服务器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110210856A true CN110210856A (zh) | 2019-09-06 |
Family
ID=67785482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910365838.3A Pending CN110210856A (zh) | 2019-04-30 | 2019-04-30 | 区块链数据处理方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110210856A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110782122A (zh) * | 2019-09-16 | 2020-02-11 | 腾讯大地通途(北京)科技有限公司 | 数据处理方法、装置及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107341660A (zh) * | 2017-05-27 | 2017-11-10 | 唐盛(北京)物联技术有限公司 | 一种区块链底层共识机制以及基于该共识机制的区块链*** |
US9875510B1 (en) * | 2015-02-03 | 2018-01-23 | Lance Kasper | Consensus system for tracking peer-to-peer digital records |
CN108712487A (zh) * | 2018-05-11 | 2018-10-26 | 北京奇虎科技有限公司 | 基于区块链的通证分配方法、装置和设备 |
-
2019
- 2019-04-30 CN CN201910365838.3A patent/CN110210856A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9875510B1 (en) * | 2015-02-03 | 2018-01-23 | Lance Kasper | Consensus system for tracking peer-to-peer digital records |
CN107341660A (zh) * | 2017-05-27 | 2017-11-10 | 唐盛(北京)物联技术有限公司 | 一种区块链底层共识机制以及基于该共识机制的区块链*** |
CN108712487A (zh) * | 2018-05-11 | 2018-10-26 | 北京奇虎科技有限公司 | 基于区块链的通证分配方法、装置和设备 |
Non-Patent Citations (1)
Title |
---|
BB财经: "聚焦丨星云币:被低估的潜力股,"区块链上的谷歌", 《HTTPS://ZHUANLAN.ZHIHU.COM/P/47060303》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110782122A (zh) * | 2019-09-16 | 2020-02-11 | 腾讯大地通途(北京)科技有限公司 | 数据处理方法、装置及电子设备 |
CN110782122B (zh) * | 2019-09-16 | 2023-11-24 | 腾讯大地通途(北京)科技有限公司 | 数据处理方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107368259A (zh) | 一种向区块链***中写入业务数据的方法和装置 | |
CN105391594B (zh) | 识别特征账号的方法及装置 | |
CN108711047B (zh) | 一种自动还款方法、***及终端设备 | |
CN110390585B (zh) | 一种识别异常对象的方法及装置 | |
US11314727B2 (en) | Blockchain management apparatus, blockchain management method, and program | |
CN108932582A (zh) | 风险信息确定方法、装置、计算机设备和存储介质 | |
CN112001786B (zh) | 基于知识图谱的客户***额度配置方法及装置 | |
CN108683605A (zh) | 一种服务调用的限流方法和装置 | |
CN108733799A (zh) | 一种报表数据处理方法、装置及终端 | |
CN110210856A (zh) | 区块链数据处理方法、装置、服务器及存储介质 | |
CN114003510A (zh) | 基于Mock服务的脚本测试方法、装置、设备及介质 | |
CN113596107A (zh) | 一种基于区块链的数据同步方法和装置 | |
CN105763608B (zh) | 一种用于云存储***的消息处理方法和装置 | |
CN109697117A (zh) | 终端控制方法、装置以及计算机可读存储介质 | |
CN106855821A (zh) | 一种分布式事务处理方法及装置 | |
CN106156185A (zh) | 一种业务请求执行状态的查询方法、装置及*** | |
CN108985933A (zh) | 一种记账方法及装置 | |
CN108804640B (zh) | 基于最大化iv的数据分组方法、装置、储存介质及设备 | |
CN110021166B (zh) | 用于处理用户出行数据的方法、装置和计算设备 | |
CN112947858A (zh) | 一种raid 5校验值的更新方法、装置和介质 | |
CN111857670A (zh) | 应用架构的确定方法和装置 | |
CN111681099A (zh) | 产品信息推送方法、装置、计算机设备及可读存储介质 | |
CN110148044A (zh) | 一种用于记账的缓冲阈值设定方法和装置 | |
CN110232525A (zh) | 一种企业风险监控方法、装置、服务器及存储介质 | |
CN110298679A (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 |