CN109410044B - 区块链系统及其中利用非生产者节点闲置计算资源的方法 - Google Patents

区块链系统及其中利用非生产者节点闲置计算资源的方法 Download PDF

Info

Publication number
CN109410044B
CN109410044B CN201810961535.3A CN201810961535A CN109410044B CN 109410044 B CN109410044 B CN 109410044B CN 201810961535 A CN201810961535 A CN 201810961535A CN 109410044 B CN109410044 B CN 109410044B
Authority
CN
China
Prior art keywords
transaction
producer node
node
transaction group
producer
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
Application number
CN201810961535.3A
Other languages
English (en)
Other versions
CN109410044A (zh
Inventor
吴胜文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ke'an (Xiamen) Technology Co.,Ltd.
Original Assignee
Tailian Xiamen Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tailian Xiamen Technology Co ltd filed Critical Tailian Xiamen Technology Co ltd
Priority to CN201810961535.3A priority Critical patent/CN109410044B/zh
Publication of CN109410044A publication Critical patent/CN109410044A/zh
Application granted granted Critical
Publication of CN109410044B publication Critical patent/CN109410044B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Engineering & Computer Science (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提出了一种区块链系统中利用非生产者节点闲置计算资源的方法,该方法包括:生产者节点接收每一条操作请求并进行计数,当数量达到交易组长度时,将操作请求打包成交易组并进行编号广播,直至满足生产区块条件时,将所有交易组进一步打包成区块,并广播生产权交接信息;非生产者节点接收到每个交易组广播,根据编号依次执行每个交易组的操作任务以进行同步,直至接收到广播生产权交接信息时,获取所有交易组的数量,并在已同步交易组的数量等于所有交易组的数量时完成同步。由此,本发明通过使非生产者节点在接收到生产者节点打包好的区块之前就开始进行同步,从而节省最终同步时间,大大提高了非生产者节点对于闲置计算资源的合理利用率。

Description

区块链系统及其中利用非生产者节点闲置计算资源的方法
技术领域
本发明涉及信息处理技术领域,特别涉及一种区块链系统中利用非生产节点闲置计算资源的方法、介质、装置及系统。
背景技术
目前大部分的区块链节点的数据存储,都是存储自创世块开始的全量区块,同时存储一份最新的区块链状态,以此执行交易、进行区块链状态同步及区块链共识;由于区块链节点存储数据时,全量区块均存在关联,因此区块链状态同步需要按顺序依次执行各个区块中的交易。
现有的区块链系统中,非生产者节点状态的同步发生在接收到生产者节点打包好的区块并进行解包执行之时,这种同步方式使得非生产者节点在接收到打包好的区块之前,有大量的闲置时间,而在接收到打包好的区块后,却要进行大量耗时的同步,从而导致非生产者节点的闲置计算资源的浪费。
发明内容
本发明旨在至少在一定程度上解决上述技术中的技术问题之一。为此,本发明的一个目的在于提出一种区块链系统中利用非生产者节点闲置计算资源的方法,该方法使非生产者节点在接收到生产者节点打包好的区块之前就开始进行同步,从而节省最终同步时间,大大提高了非生产者节点对于闲置计算资源的合理利用率。
本发明的第二个目的在于提出一种计算机可读存储介质。
本发明的第三个目的在于提出一种区块链系统中利用非生产者节点闲置计算资源的装置。
本发明的第四个目的在于提出一种区块链系统。
为达到上述目的,本发明第一方面实施例提出了一种区块链系统中利用非生产者节点闲置计算资源的方法,该方法包括以下步骤:当所述区块链系统中任意一个节点作为生产者节点时,对接收到的每一条操作请求进行计数,并对计数量进行判断;每当所述计数量达到配置的交易组长度N时,将N条操作请求打包成一个交易组并签名,以及对每个交易组进行编号并广播,直至满足生产区块的条件时,将所有交易组进一步打包成区块,并广播生产权交接信息,其中,N为正整数;所述区块链系统中任意一个非生产者节点接收到每个交易组广播时,对所述交易组广播进行解锁以获得所述交易组的编号和操作任务,并根据所述交易组的编号依次执行每个交易组的操作任务以进行同步,并获取已同步交易组的数量,直至接收到所述广播生产权交接信息时,根据所述广播生产权交接信息获取所有交易组的数量,并在已同步交易组的数量等于所有交易组的数量时完成同步。
根据本发明实施例的区块链系统中利用非生产者节点闲置计算资源的方法,当区块链系统中任意一个节点作为生产者节点时,对接收到的每一条操作请求进行计数,并对计数量进行判断,接着每当计数量达到配置的交易组长度N时,就将N条操作请求打包成一个交易组并签名,并对每个交易组进行编号并广播,直至满足生产区块的条件时,将所有交易组进一步打包成区块,并广播生产权交接信息;而当区块链系统中任意一个非生产者节点接收到每个交易组广播时,对交易组广播进行解锁以获得交易组的编号和操作任务,并根据交易组的编号依次执行每个交易组的操作任务以进行同步,然后获取已同步交易组的数量,直至接收到广播生产权交接信息时,根据广播生产权交接信息获取所有交易组的数量,并在已同步交易组的数量等于所有交易组的数量时完成同步。由此,本发明在生产者节点生产区块时,将接收到的操作请求进行分批打包并广播,这样使得非生产者节点在接收到区块之前就开始进行同步,从而节省最终同步时间,有效利用非生产者节点在接收到区块之前的闲置计算资源,大大提高了非生产者节点对于闲置计算资源的合理利用率。
另外,根据本发明上述实施例提出的区块链系统中利用非生产者节点闲置计算资源的方法还可以具有如下附加的技术特征:
可选地,在所述区块链系统初始化时,配置所述交易组长度N。
可选地,当所述区块链系统中任意一个节点作为生产者节点时,该生产者节点内通过配置一个节点内部局部变量count以对接收到的每一条操作请求进行计数,其中,S1,该生产者节点每接收到一条操作请求时,将该操作记录放入缓存,并将count加1;S2,当count整除N时,将第count-N+1条操作请求至第count条操作请求打包成一个交易组并签名,以及对该交易组进行编号和广播;重复执行步骤S1和S2,直至所述缓存中操作记录达到预设的容纳上限时,将所有交易组进一步打包成区块。
可选地,当所述区块链系统中任意一个节点作为生产者节点时,如果所述区块链系统中任意一个非生产者节点接收到交易组广播,则获取当前生产者节点的ID信息,并根据当前生产者节点的ID信息使用当前生产者节点的公钥对所述交易组广播进行解锁。
为达到上述目的,本发明第二方面实施例提出了一种计算机可读存储介质,其上存储有区块链系统中利用非生产者节点闲置计算资源的程序,该区块链系统中利用非生产者节点闲置计算资源的程序被处理器执行时实现如上述的区块链系统中利用非生产者节点闲置计算资源的方法。
根据本发明实施例的计算机可读存储介质,通过存储区块链系统中利用非生产者节点闲置计算资源的程序,这样区块链系统中利用非生产者节点闲置计算资源的程序被处理器执行时实现如上述的区块链系统中利用非生产者节点闲置计算资源的方法,由此,能够在生产者节点生产区块时,将接收到的操作请求进行分批打包并广播,这样使得非生产者节点在接收到区块之前就开始进行同步,从而节省最终同步时间,有效利用非生产者节点在接收到区块之前的闲置计算资源,大大提高了非生产者节点对于闲置计算资源的合理利用率。
达到上述目的,本发明第三方面实施例提出了一种区块链系统中利用非生产者节点闲置计算资源的装置,包括计数模块,用于在所述区块链系统中任意一个节点作为生产者节点时,对该生产者节点接收到的每一条操作请求进行计数;判断模块,用于对计数量进行判断;打包及广播模块,用于在每当所述计数量达到配置的交易组长度N时,将N条操作请求打包成一个交易组并签名,以及对每个交易组进行编号并广播,直至满足生产区块的条件时,将所有交易组进一步打包成区块,并广播生产权交接信息,其中,N为正整数;解锁模块,用于在所述区块链系统中任意一个非生产者节点接收到每个交易组广播时,对所述交易组广播进行解锁以获得所述交易组的编号和操作任务;同步模块,用于根据所述交易组的编号依次执行每个交易组的操作任务以进行同步,并获取已同步交易组的数量,直至接收到所述广播生产权交接信息时,根据所述广播生产权交接信息获取所有交易组的数量,并在已同步交易组的数量等于所有交易组的数量时完成同步。
根据本发明实施例的区块链系统中利用非生产者节点闲置计算资源的装置,在区块链系统中任意一个节点作为生产者节点时,通过计数模块对接收到的每一条操作请求进行计数,并通过判断模块对计数量进行判断,这样每当计数量达到配置的交易组长度N时,就通过打包及广播模块将N条操作请求打包成一个交易组并签名,并对每个交易组进行编号并广播,直至满足生产区块的条件时,将所有交易组进一步打包成区块,并广播生产权交接信息;而在区块链系统中任意一个非生产者节点接收到每个交易组广播时,通过解锁模块对交易组广播进行解锁以获得交易组的编号和操作任务,并通过同步模块根据交易组的编号依次执行每个交易组的操作任务以进行同步,然后获取已同步交易组的数量,直至接收到广播生产权交接信息时,根据广播生产权交接信息获取所有交易组的数量,并在已同步交易组的数量等于所有交易组的数量时完成同步。由此,本发明能够在生产者节点生产区块时,将接收到的操作请求进行分批打包并广播,这样使得非生产者节点在接收到区块之前就开始进行同步,从而节省最终同步时间,有效利用非生产者节点在接收到区块之前的闲置计算资源,大大提高了非生产者节点对于闲置计算资源的合理利用率。
另外,根据本发明上述实施例提出的区块链系统中利用非生产者节点闲置计算资源的装置还可以具有如下附加的技术特征:
可选地,该区块链系统中利用非生产者节点闲置计算资源的装置还包括配置模块,用于在所述区块链系统初始化时,配置所述交易组长度N。
可选地,当所述区块链系统中任意一个节点作为生产者节点时,该生产者节点内通过配置一个节点内部局部变量count以对接收到的每一条操作请求进行计数,其中,S1,该生产者节点每接收到一条操作请求时,所述计数模块将该操作记录放入缓存,并将count加1;S2,当count整除N时,所述打包及广播模块将第count-N+1条操作请求至第count条操作请求打包成一个交易组并签名,以及对该交易组进行编号和广播;重复执行步骤S1和S2,直至所述缓存中操作记录达到预设的容纳上限时,所述打包及广播模块将所有交易组进一步打包成区块。
可选地,所述解锁模块进一步用于,当所述区块链系统中任意一个节点作为生产者节点时,如果所述区块链系统中任意一个非生产者节点接收到交易组广播,则获取当前生产者节点的ID信息,并根据当前生产者节点的ID信息使用当前生产者节点的公钥对所述交易组广播进行解锁。
为达到上述目的,本发明第四方面实施例提出了一种区块链系统,其包括如上述的区块链系统中利用非生产者节点闲置计算资源的装置。
根据本发明实施例的区块链系统,通过上述的区块链系统中利用非生产者节点闲置计算资源的装置,能够在生产者节点生产区块时,将接收到的操作请求进行分批打包并广播,这样使得非生产者节点在接收到区块之前就开始进行同步,从而节省最终同步时间,有效利用非生产者节点在接收到区块之前的闲置计算资源,大大提高了非生产者节点对于闲置计算资源的合理利用率。
附图说明
图1为根据本发明实施例的区块链系统中利用非生产者节点闲置计算资源的方法的流程示意图;
图2为根据本发明实施例的区块链系统中利用非生产者节点闲置计算资源的方法中生产者节点的流程示意图;
图3为根据本发明实施例的区块链系统中利用非生产者节点闲置计算资源的方法中非生产者节点的流程示意图;
图4为根据本发明实施例的区块链系统中利用非生产者节点闲置计算资源的装置的方框示意图;
图5为根据本发明另一实施例的区块链系统中利用非生产者节点闲置计算资源的装置的方框示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
现有区块链系统中非生产者节点状态的同步发生在接收到生产者节点打包好的区块并进行解包执行之时,这种同步方式使得非生产者节点在接收到打包好的区块之前,有大量的闲置时间,而在接收到打包好的区块后,却要执行大量耗时的同步,导致非生产者节点的闲置计算资源得不到合理的利用。为了提高非生产者节点对于闲置计算资源的合理利用率,本发明实施例提出了一种区块链系统中利用非生产者节点闲置计算资源的方法,当区块链系统中任意一个节点作为生产者节点时,对接收到的每一条操作请求进行计数,并对计数量进行判断,接着每当计数量达到配置的交易组长度N时,就将N条操作请求打包成一个交易组并签名,并对每个交易组进行编号并广播,直至满足生产区块的条件时,将所有交易组进一步打包成区块,并广播生产权交接信息;而当区块链系统中任意一个非生产者节点接收到每个交易组广播时,对交易组广播进行解锁以获得交易组的编号和操作任务,并根据交易组的编号依次执行每个交易组的操作任务以进行同步,然后获取已同步交易组的数量,直至接收到广播生产权交接信息时,根据广播生产权交接信息获取所有交易组的数量,并在已同步交易组的数量等于所有交易组的数量时完成同步。由此,本发明在生产者节点生产区块时,将接收到的操作请求进行分批打包并广播,这样使得非生产者节点在接收到区块之前就开始进行同步,从而节省最终同步时间,有效利用非生产者节点在接收到区块之前的闲置计算资源。
为了更好的理解上述技术方案,下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
图1为本发明实施例提出的区块链系统中利用非生产者节点闲置计算资源的方法的流程示意图。
如图1所示,该区块链系统中利用非生产者节点闲置计算资源的方法包括以下步骤:
步骤101,当区块链系统中任意一个节点作为生产者节点时,对接收到的每一条操作请求进行计数,并对计数量进行判断。
在本发明的实施例中,区块链系统包括生产者节点和非生产者节点,其中,生产者节点可通过区块链系统的共识机制例如通过dpos共识机制确定。
需要说明的是,在区块链系统初始化时,预先配置交易组长度N,其为系统全局变量。
作为一个实施例,通过配置一个节点内部局部变量count对接收到的每一条操作请求进行计数,其中,该生产者节点每接收到一条操作请求时,将该操作记录放入缓存,并将count加1,即步骤S1。
也就是说,当区块链系统中任意一个节点作为生产者节点时,通过配置一个节点内部局部变量count对接收到的每一条操作请求进行计数,该生产者节点每接收到一条操作请求时,将该操作记录放入缓存,并将count加1,并对计数量count进行判断。
步骤102,每当计数量达到配置的交易组长度N时,将N条操作请求打包成一个交易组并签名,以及对每个交易组进行编号并广播,直至满足生产区块的条件时,将所有交易组进一步打包成区块,并广播生产权交接信息,其中,N为正整数。
也就是说,对上述计数量count进行判断,当count整除N时,将第count-N+1条操作请求至第count条操作请求打包成一个交易组并签名,以及对该交易组进行编号和广播,即步骤S2。重复执行步骤S1和S2,直至最后缓存中操作记录达到区块预设的容纳上限时,将之前所有交易组进一步打包成区块,并广播生产权交接信息。
步骤103,区块链系统中任意一个非生产者节点接收到每个交易组广播时,对交易组广播进行解锁以获得交易组的编号和操作任务,并根据交易组的编号依次执行每个交易组的操作任务以进行同步,并获取已同步交易组的数量,直至接收到广播生产权交接信息时,根据广播生产权交接信息获取所有交易组的数量,并在已同步交易组的数量等于所有交易组的数量时完成同步。
作为一个实施例,上述区块链系统中任意一个非生产者节点接收到交易组广播,则获取当前生产者节点的ID信息,并根据当前生产者节点的ID信息使用当前生产者节点的公钥对交易组广播进行解锁以获得交易组的编号和操作任务。
也就是说,当区块链系统中任意一个非生产者节点接收到生产者节点发布的交易组广播时,通过获取当前生产者节点的ID信息,并根据当前生产者节点的ID信息使用当前生产者节点的公钥对交易组广播进行解锁以获得交易组的编号和操作任务,然后获取已同步交易组的数量g,直至接收到该生产者节点广播的生产权交接信息时,根据广播生产权交接信息获取所有交易组的数量u,并在已同步交易组的数量g等于所有交易组的数量u时完成同步。
根据本发明实施例的区块链系统中利用非生产者节点闲置计算资源的方法,当区块链系统中任意一个节点作为生产者节点时,对接收到的每一条操作请求进行计数,并对计数量进行判断,接着每当计数量达到配置的交易组长度N时,就将N条操作请求打包成一个交易组并签名,并对每个交易组进行编号并广播,直至满足生产区块的条件时,将所有交易组进一步打包成区块,并广播生产权交接信息;而当区块链系统中任意一个非生产者节点接收到每个交易组广播时,对交易组广播进行解锁以获得交易组的编号和操作任务,并根据交易组的编号依次执行每个交易组的操作任务以进行同步,然后获取已同步交易组的数量,直至接收到广播生产权交接信息时,根据广播生产权交接信息获取所有交易组的数量,并在已同步交易组的数量等于所有交易组的数量时完成同步。由此,本发明在生产者节点生产区块时,将接收到的操作请求进行分批打包并广播,这样使得非生产者节点在接收到区块之前就开始进行同步,从而节省最终同步时间,有效利用非生产者节点在接收到区块之前的闲置计算资源,大大提高了非生产者节点对于闲置计算资源的合理利用率。
为了进一步理解上述技术方案,下面将通过图2对上述技术方案进行详细的说明。
图2为本发明一个实施例中生产者节点的执行流程示意图。其中,在区块链系统初始化时,配置全局变量交易组长度N。如图2所示,该生产者节点的执行流程包括以下步骤:
步骤201,确定区块生产者节点。
作为一个实施例,根据当前全局中生产者安排表(由dpos共识机制确定)来得到区块生产者节点。
步骤202,生产者节点接收操作请求,并将操作请求的记录放入缓存,通过配置一个节点内部局部变量count以对接收到的每一条操作请求进行计数。
作为一个实施例,该生产者节点每接收到一条操作请求时,将该操作请求的记录放入缓存,并将count加1。
步骤203,判断count是否能整除N。如果是,则执行步骤204;如果否,则返回执行步骤202。
也就是说,判断当前接收到的操作请求的数量count是否能组成交易组。如果达到组成交易组的数量则执行步骤204;否者,返回步骤202,继续接收下一条操作请求。
步骤204,将缓存中第count-N+1条操作请求至第count条操作请求打包成一个交易组并签名,以及对该交易组进行编号和广播。
也就是说,当缓存中的操作请求的数量count能被N整除时,将长度为N的操作请求打包成一个交易组并签名,以及对该交易组进行编号和广播。
步骤205,判断缓存中操作记录是否达到预设的容纳上限。如果是,则执行步骤206;如果否,则返回执行步骤202。
也就是说,判断该生产者节点当前接收到的操作记录是否达到缓存中区块生产所预设的能容纳的上限。如果是,则执行步骤206;如果否,则回执行步骤202,继续等待接收新的操作请求。
步骤206,将所有交易组进一步打包成区块,并广播生产权交接信息。
为了进一步理解上述技术方案,下面将通过图3对上述技术方案进行详细的说明。
图3为本发明一个实施例中非生产者节点的执行流程示意图。如图3所示,该非生产者节点的执行流程包括以下步骤:
步骤301,接收交易组广播。
需要说明的是,当生产者节点将长度为N的操作请求数量打包为一个交易组,并进行编号和广播后,非生产者节点即开始同步接收生产者节点的交易组广播。
步骤302,根据当前全局中生产者安排表确定当前生产者,使用当前生产者节点的公钥对交易组广播进行解锁以获得交易组的编号和操作任务。
作为一个实施例,通过获取当前生产者节点的ID信息,并根据当前生产者节点的ID信息使用当前生产者节点的公钥对交易组广播进行解锁以获得交易组的编号和操作任务。
步骤303,获取已同步交易组的数量g,若交易组编号X==g+1,则执行交易组广播内的操作任务。
步骤304,令g=g+1。
步骤305,查找缓存池。
步骤306,判断缓存池中是否有任务组y==g+1。如果是,则执行步骤307;如果否,则返回步骤301。
步骤307,取出y,执行内部操作。
步骤308,令g=g+1。
需要说明的是,当执行完步骤308之后,重复执行步骤306至步骤308,直至收到生产权交接信息后,执行步骤309。
步骤309,获取所有交易组数量u,若此时g==u则将交易组打包为区块,并将g置为0,否则将该信息放入缓存池,继续等待剩余交易组。
作为一个实施例,上述所有交易组数量u从生产者节点发出的广播生产权交接信息中获取。
根据本发明实施例的区块链系统中利用非生产者节点闲置计算资源的方法,当区块链系统中任意一个节点作为生产者节点时,对接收到的每一条操作请求进行计数,并对计数量进行判断,接着每当计数量达到配置的交易组长度N时,就将N条操作请求打包成一个交易组并签名,并对每个交易组进行编号并广播,直至满足生产区块的条件时,将所有交易组进一步打包成区块,并广播生产权交接信息;而当区块链系统中任意一个非生产者节点接收到每个交易组广播时,对交易组广播进行解锁以获得交易组的编号和操作任务,并根据交易组的编号依次执行每个交易组的操作任务以进行同步,然后获取已同步交易组的数量,直至接收到广播生产权交接信息时,根据广播生产权交接信息获取所有交易组的数量,并在已同步交易组的数量等于所有交易组的数量时完成同步。由此,本发明在生产者节点生产区块时,将接收到的操作请求进行分批打包并广播,这样使得非生产者节点在接收到区块之前就开始进行同步,从而节省最终同步时间,有效利用非生产者节点在接收到区块之前的闲置计算资源,大大提高了非生产者节点对于闲置计算资源的合理利用率。
为了实现上述实施例,本发明实施例提出了一种计算机可读存储介质,其上存储有区块链系统中利用非生产者节点闲置计算资源的程序,该区块链系统中利用非生产者节点闲置计算资源的程序被处理器执行时实现如上述的区块链系统中利用非生产者节点闲置计算资源的方法。
根据本发明实施例的计算机可读存储介质,通过存储区块链系统中利用非生产者节点闲置计算资源的程序,这样区块链系统中利用非生产者节点闲置计算资源的程序被处理器执行时实现如上述的区块链系统中利用非生产者节点闲置计算资源的方法,由此,本发明在生产者节点生产区块时,将接收到的操作请求进行分批打包并广播,这样使得非生产者节点在接收到区块之前就开始进行同步,从而节省最终同步时间,有效利用非生产者节点在接收到区块之前的闲置计算资源,大大提高了非生产者节点对于闲置计算资源的合理利用率。
图4为本发明实施例的区块链系统中利用非生产者节点闲置计算资源的装置的方框示意图。如图4所示,该装置包括:计数模块401、判断模块402、打包及广播模块403、解锁模块404以及同步模块405。
其中,计数模块401,用于在区块链系统中任意一个节点作为生产者节点时,对该生产者节点接收到的每一条操作请求进行计数。
判断模块402,用于对计数量进行判断。
打包及广播模块403,用于在每当计数量达到配置的交易组长度N时,将N条操作请求打包成一个交易组并签名,以及对每个交易组进行编号并广播,直至满足生产区块的条件时,将所有交易组进一步打包成区块,并广播生产权交接信息,其中,N为正整数。
解锁模块404,用于在区块链系统中任意一个非生产者节点接收到每个交易组广播时,对交易组广播进行解锁以获得交易组的编号和操作任务;
同步模块405,用于根据交易组的编号依次执行每个交易组的操作任务以进行同步,并获取已同步交易组的数量,直至接收到广播生产权交接信息时,根据广播生产权交接信息获取所有交易组的数量,并在已同步交易组的数量等于所有交易组的数量时完成同步。
作为一个实施例,当区块链系统中任意一个节点作为生产者节点时,该生产者节点内通过配置一个节点内部局部变量count以对接收到的每一条操作请求进行计数,其中,
S1,该生产者节点每接收到一条操作请求时,计数模块将该操作记录放入缓存,并将count加1;
S2,当count整除N时,打包及广播模块将第count-N+1条操作请求至第count条操作请求打包成一个交易组并签名,以及对该交易组进行编号和广播;
重复执行步骤S1和S2,直至缓存中操作记录达到预设的容纳上限时,打包及广播模块将所有交易组进一步打包成区块。
作为一个实施例,解锁模块404进一步用于,当区块链系统中任意一个节点作为生产者节点时,如果区块链系统中任意一个非生产者节点接收到交易组广播,则获取当前生产者节点的ID信息,并根据当前生产者节点的ID信息使用当前生产者节点的公钥对交易组广播进行解锁。
图5为本发明另一实施例的区块链系统中利用非生产者节点闲置计算资源的装置的方框示意图。如图5所示,其与图4的区别在于,该装置还包括:配置模块400,用于在区块链系统初始化时,配置交易组长度N。
需要说明的是,前述对于区块链系统中利用非生产者节点闲置计算资源的方法的实施例的解释说明同样适用于本实施例的区块链系统中利用非生产者节点闲置计算资源的装置,此处不再赘述。
根据本发明实施例的区块链系统中利用非生产者节点闲置计算资源的装置,在区块链系统中任意一个节点作为生产者节点时,通过计数模块对接收到的每一条操作请求进行计数,并通过判断模块对计数量进行判断,这样每当计数量达到配置的交易组长度N时,就通过打包及广播模块将N条操作请求打包成一个交易组并签名,并对每个交易组进行编号并广播,直至满足生产区块的条件时,将所有交易组进一步打包成区块,并广播生产权交接信息;而在区块链系统中任意一个非生产者节点接收到每个交易组广播时,通过解锁模块对交易组广播进行解锁以获得交易组的编号和操作任务,并通过同步模块根据交易组的编号依次执行每个交易组的操作任务以进行同步,然后获取已同步交易组的数量,直至接收到广播生产权交接信息时,根据广播生产权交接信息获取所有交易组的数量,并在已同步交易组的数量等于所有交易组的数量时完成同步。由此,本发明能够在生产者节点生产区块时,将接收到的操作请求进行分批打包并广播,这样使得非生产者节点在接收到区块之前就开始进行同步,从而节省最终同步时间,有效利用非生产者节点在接收到区块之前的闲置计算资源,大大提高了非生产者节点对于闲置计算资源的合理利用率。
为实现上述实施例,本发明实施例提出了一种区块链系统,包括存储器、处理器及存储在存储器上并可在处理器上运行的区块链系统中利用非生产者节点闲置计算资源的程序,处理器执行区块链系统中利用非生产者节点闲置计算资源的程序时实现如上述的区块链系统中利用非生产者节点闲置计算资源的方法。
根据本发明实施例的区块链系统,通过存储器存储区块链系统中利用非生产者节点闲置计算资源的程序,这样区块链系统中利用非生产者节点闲置计算资源的程序被处理器执行时实现如上述的区块链系统中利用非生产者节点闲置计算资源的方法,由此,本发明在生产者节点生产区块时,将接收到的操作请求进行分批打包并广播,这样使得非生产者节点在接收到区块之前就开始进行同步,从而节省最终同步时间,有效利用非生产者节点在接收到区块之前的闲置计算资源,大大提高了非生产者节点对于闲置计算资源的合理利用率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征 “上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、 “示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不应理解为必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (10)

1.一种区块链系统中利用非生产者节点闲置计算资源的方法,其特征在于,包括以下步骤:
当所述区块链系统中任意一个节点作为生产者节点时,对接收到的每一条操作请求进行计数,并对计数量进行判断;
每当所述计数量达到配置的交易组长度N时,将N条操作请求打包成一个交易组并签名,以及对每个交易组进行编号并广播,直至满足生产区块的条件时,将所有交易组进一步打包成区块,并广播生产权交接信息,其中,N为正整数;
所述区块链系统中任意一个非生产者节点接收到每个交易组广播时,对所述交易组广播进行解锁以获得所述交易组的编号和操作任务,并根据所述交易组的编号依次执行每个交易组的操作任务以进行同步,并获取已同步交易组的数量,直至接收到所述广播生产权交接信息时,根据所述广播生产权交接信息获取所有交易组的数量,并在已同步交易组的数量等于所有交易组的数量时完成同步。
2.如权利要求1所述的区块链系统中利用非生产者节点闲置计算资源的方法,其特征在于,在所述区块链系统初始化时,配置所述交易组长度N。
3.如权利要求1或2所述的区块链系统中利用非生产者节点闲置计算资源的方法,其特征在于,当所述区块链系统中任意一个节点作为生产者节点时,该生产者节点内通过配置一个节点内部局部变量count以对接收到的每一条操作请求进行计数,其中,
S1,该生产者节点每接收到一条操作请求时,将操作记录放入缓存,并将count加1;
S2,当count整除N时,将第count-N+1条操作请求至第count条操作请求打包成一个交易组并签名,以及对该交易组进行编号和广播;
重复执行步骤S1和S2,直至所述缓存中操作记录达到预设的容纳上限时,将所有交易组进一步打包成区块。
4.如权利要求1或2所述的区块链系统中利用非生产者节点闲置计算资源的方法,其特征在于,当所述区块链系统中任意一个节点作为生产者节点时,如果所述区块链系统中任意一个非生产者节点接收到交易组广播,则获取当前生产者节点的ID信息,并根据当前生产者节点的ID信息使用当前生产者节点的公钥对所述交易组广播进行解锁。
5.一种计算机可读存储介质,其特征在于,其上存储有区块链系统中利用非生产者节点闲置计算资源的程序,该区块链系统中利用非生产者节点闲置计算资源的程序被处理器执行时实现如权利要求1-4中任一项所述的区块链系统中利用非生产者节点闲置计算资源的方法。
6.一种区块链系统中利用非生产者节点闲置计算资源的装置,其特征在于,包括:
计数模块,用于在所述区块链系统中任意一个节点作为生产者节点时,对该生产者节点接收到的每一条操作请求进行计数;
判断模块,用于对计数量进行判断;
打包及广播模块,用于在每当所述计数量达到配置的交易组长度N时,将N条操作请求打包成一个交易组并签名,以及对每个交易组进行编号并广播,直至满足生产区块的条件时,将所有交易组进一步打包成区块,并广播生产权交接信息,其中,N为正整数;
解锁模块,用于在所述区块链系统中任意一个非生产者节点接收到每个交易组广播时,对所述交易组广播进行解锁以获得所述交易组的编号和操作任务;
同步模块,用于根据所述交易组的编号依次执行每个交易组的操作任务以进行同步,并获取已同步交易组的数量,直至接收到所述广播生产权交接信息时,根据所述广播生产权交接信息获取所有交易组的数量,并在已同步交易组的数量等于所有交易组的数量时完成同步。
7.如权利要求6所述的区块链系统中利用非生产者节点闲置计算资源的装置,其特征在于,还包括配置模块,用于在所述区块链系统初始化时,配置所述交易组长度N。
8.如权利要求6或7所述的区块链系统中利用非生产者节点闲置计算资源的装置,其特征在于,当所述区块链系统中任意一个节点作为生产者节点时,该生产者节点内通过配置一个节点内部局部变量count以对接收到的每一条操作请求进行计数,其中,
S1,该生产者节点每接收到一条操作请求时,所述计数模块将操作记录放入缓存,并将count加1;
S2,当count整除N时,所述打包及广播模块将第count-N+1条操作请求至第count条操作请求打包成一个交易组并签名,以及对该交易组进行编号和广播;
重复执行步骤S1和S2,直至所述缓存中操作记录达到预设的容纳上限时,所述打包及广播模块将所有交易组进一步打包成区块。
9.如权利要求6或7所述的区块链系统中利用非生产者节点闲置计算资源的装置,其特征在于,所述解锁模块进一步用于,当所述区块链系统中任意一个节点作为生产者节点时,如果所述区块链系统中任意一个非生产者节点接收到交易组广播,则获取当前生产者节点的ID信息,并根据当前生产者节点的ID信息使用当前生产者节点的公钥对所述交易组广播进行解锁。
10.一种区块链系统,其特征在于,包括如权利要求6-9中任一项所述的区块链系统中利用非生产者节点闲置计算资源的装置。
CN201810961535.3A 2018-08-22 2018-08-22 区块链系统及其中利用非生产者节点闲置计算资源的方法 Active CN109410044B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810961535.3A CN109410044B (zh) 2018-08-22 2018-08-22 区块链系统及其中利用非生产者节点闲置计算资源的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810961535.3A CN109410044B (zh) 2018-08-22 2018-08-22 区块链系统及其中利用非生产者节点闲置计算资源的方法

Publications (2)

Publication Number Publication Date
CN109410044A CN109410044A (zh) 2019-03-01
CN109410044B true CN109410044B (zh) 2020-10-23

Family

ID=65464345

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810961535.3A Active CN109410044B (zh) 2018-08-22 2018-08-22 区块链系统及其中利用非生产者节点闲置计算资源的方法

Country Status (1)

Country Link
CN (1) CN109410044B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110430066B (zh) * 2019-07-15 2021-07-06 杭州复杂美科技有限公司 用于减少区块链交易重复广播的方法、设备及存储介质
CN110544096B (zh) * 2019-09-05 2023-12-12 腾讯科技(深圳)有限公司 基于区块链的数据获取方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103354560A (zh) * 2013-06-28 2013-10-16 广州菁英信息技术有限公司 数据的分解同步方法及系统
CN106446067A (zh) * 2016-09-06 2017-02-22 联动优势科技有限公司 一种获取交易数据的方法和装置
CN107124444A (zh) * 2017-03-28 2017-09-01 上海瑞麒维网络科技有限公司 一种区块链数据同步的方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10046228B2 (en) * 2016-05-02 2018-08-14 Bao Tran Smart device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103354560A (zh) * 2013-06-28 2013-10-16 广州菁英信息技术有限公司 数据的分解同步方法及系统
CN106446067A (zh) * 2016-09-06 2017-02-22 联动优势科技有限公司 一种获取交易数据的方法和装置
CN107124444A (zh) * 2017-03-28 2017-09-01 上海瑞麒维网络科技有限公司 一种区块链数据同步的方法和装置

Also Published As

Publication number Publication date
CN109410044A (zh) 2019-03-01

Similar Documents

Publication Publication Date Title
CN106506638B (zh) 区块链中的区块存储方法及装置
CN110737664B (zh) 一种区块链节点同步的方法及装置
Aggarwal et al. The load rebalancing problem
CN109410044B (zh) 区块链系统及其中利用非生产者节点闲置计算资源的方法
CN107528682A (zh) 参考信号的发送方法及装置
Shun et al. Sequential random permutation, list contraction and tree contraction are highly parallel
CN111581214B (zh) 适用于能源区块链的并行merkle树构建与验证方法
CN111932257B (zh) 一种区块链并行化处理方法及装置
CN112383610A (zh) 区块链状态数据的同步处理方法及系统
CN110209714A (zh) 报表生成方法、装置、计算机设备及计算机可读存储介质
CN109657197B (zh) 一种叠前深度偏移计算方法及系统
CN111367649B (zh) 高精地图数据并行处理方法和装置
CN112711631B (zh) 数字孪生信息同步方法、系统、可读存储介质及设备
CN101751429A (zh) 一种前后台数据库的同步方法及装置
CN104917844B (zh) 一种数据同步方法、装置及系统
CN103078946A (zh) 一种海量实时数据分布方法及其访问方法
CN106933882B (zh) 一种大数据增量计算方法和装置
CN112395272B (zh) 通信算法数据库构建方法、分布式机器装置和存储介质
CN109254837B (zh) 区块链系统及其中非生产节点的任务执行速度的提高方法
CN110046194A (zh) 一种扩展节点关系图的方法、装置和电子设备
CN115623080A (zh) 基于区块链的分布式存储方法、装置及计算机设备
CN112035439B (zh) 数据迁移方法及装置、计算机设备及计算机可读存储介质
CN111181731B (zh) 联盟链中智能合约的执行优化方法、系统及存储介质
CN112379408A (zh) 可控震源同时激发的单炮数据采集方法及装置
CN111275553A (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
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 361000 B1F-065, Zone A, Huaxun Building, Software Park, Xiamen Torch Hi-tech Zone, Huli District, Xiamen City, Fujian Province

Patentee after: Ke'an (Xiamen) Technology Co.,Ltd.

Address before: B1f-065, zone a, Huaxun building, software park, torch hi tech Zone, Xiamen City, Fujian Province, 361000

Patentee before: TAILIAN (XIAMEN) TECHNOLOGY Co.,Ltd.