区块链账户创建时的限制方法、介质、装置及系统转让专利

申请号 : CN201810927538.5

文献号 : CN109327349B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴胜文

申请人 : 泰链(厦门)科技有限公司

摘要 :

本发明公开了一种区块链系统中区块链账户创建时的限制方法,包括以下步骤:当节点接收到广播包时,对其进行解析获得广播包内操作的发起时间,并获取当前时间与发起时间之间的时间差以作为延时时间;判断广播包延时时间队列的当前长度是否超出队列允许的最大长度;如果是,则删除广播包延时时间队列的头数据,并计算当前平均延时时间;然后判断当前平均延时时间是否小于区块链系统可容忍的最大平均延迟时间;如果是,则允许新的区块链账户创建;如果否,则禁止新的区块链账户创建。由此,本发明通过停用区块链账户创建功能,在保护区块链用户规模的情况下,限制账户无止境增多,从而大大提高了区块链的网络访问质量。

权利要求 :

1.一种区块链系统中区块链账户创建时的限制方法,其特征在于,包括以下步骤:

当所述区块链系统中的任意一个节点接收到广播包时,对所述广播包进行解析以获得所述广播包内操作的发起时间,并获取当前时间与所述发起时间之间的时间差以作为延时时间,以及将所述延时时间置于该节点存储的广播包延时时间队列的队尾;

判断所述广播包延时时间队列的当前长度是否超出队列允许的最大长度;

如果所述广播包延时时间队列的当前长度超出队列允许的最大长度,则删除所述广播包延时时间队列的头数据,并根据当前广播包延时时间队列内的所有延时时间之和与当前广播包延时时间队列的长度计算当前平均延时时间;

判断当前平均延时时间是否小于所述区块链系统可容忍的最大平均延迟时间;

如果当前平均延时时间小于所述区块链系统可容忍的最大平均延迟时间,则允许新的区块链账户创建;

如果当前平均延时时间大于等于所述区块链系统可容忍的最大平均延迟时间,则禁止新的区块链账户创建。

2.如权利要求1所述的区块链系统中区块链账户创建时的限制方法,其特征在于,当所述广播包延时时间队列的当前长度未超出队列允许的最大长度时,直接根据所述广播包延时时间队列内的所有延时时间之和与所述广播包延时时间队列的当前长度计算当前平均延时时间。

3.如权利要求1或2所述的区块链系统中区块链账户创建时的限制方法,其特征在于,所述广播包延时时间队列在所述区块链系统的初始节点启动并创建创世区块后建立,并在所述区块链系统内同步到每个节点。

4.如权利要求1或2所述的区块链系统中区块链账户创建时的限制方法,其特征在于,所述队列允许的最大长度为全局常量,所述区块链系统可容忍的最大平均延迟时间为全局变量、且可被所述区块链系统以共识机制投票改变。

5.一种计算机可读存储介质,其特征在于,其上存储有区块链系统中区块链账户创建时的限制程序,该区块链系统中区块链账户创建时的限制程序被处理器执行时实现如权利要求1-4中任一项所述的区块链系统中区块链账户创建时的限制方法。

6.一种区块链系统中区块链账户创建时的限制装置,其特征在于,包括:

解析模块,用于在所述区块链系统中的任意一个节点接收到广播包时,对所述广播包进行解析以获得所述广播包内操作的发起时间,并获取当前时间与所述发起时间之间的时间差以作为延时时间,以及将所述延时时间置于该节点存储的广播包延时时间队列的队尾;

第一判断模块,用于判断所述广播包延时时间队列的当前长度是否超出队列允许的最大长度;

延时时间计算模块,用于在所述广播包延时时间队列的当前长度超出队列允许的最大长度时删除所述广播包延时时间队列的头数据,并根据当前广播包延时时间队列内的所有延时时间之和与当前广播包延时时间队列的长度计算当前平均延时时间;

第二判断模块,用于判断当前平均延时时间是否小于所述区块链系统可容忍的最大平均延迟时间;

限制模块,用于在当前平均延时时间小于所述区块链系统可容忍的最大平均延迟时间时允许新的区块链账户创建,还用于在当前平均延时时间大于等于所述区块链系统可容忍的最大平均延迟时间时禁止新的区块链账户创建。

7.如权利要求6所述的区块链系统中区块链账户创建时的限制装置,其特征在于,所述延时时间计算模块还用于,当所述广播包延时时间队列的当前长度未超出队列允许的最大长度时,直接根据所述广播包延时时间队列内的所有延时时间之和与所述广播包延时时间队列的当前长度计算当前平均延时时间。

8.如权利要求6或7所述的区块链系统中区块链账户创建时的限制装置,其特征在于,所述广播包延时时间队列在所述区块链系统的初始节点启动并创建创世区块后建立,并在所述区块链系统内同步到每个节点。

9.如权利要求6或7所述的区块链系统中区块链账户创建时的限制装置,其特征在于,所述队列允许的最大长度为全局常量,所述区块链系统可容忍的最大平均延迟时间为全局变量、且可被所述区块链系统以共识机制投票改变。

10.一种区块链系统,其特征在于,包括如权利要求6-9中任一项所述的区块链系统中区块链账户创建时的限制装置。

说明书 :

区块链账户创建时的限制方法、介质、装置及系统

技术领域

[0001] 本发明涉及信息处理技术领域,特别涉及一种区块链系统中区块链账户创建时的限制方法、介质、装置及区块链系统。

背景技术

[0002] 区块链是一种源自比特币的去中心化分布式记账技术,其通过将加密区块数据按照时间顺序叠加而生成持久的不可修改的记录,并且将记录存储在区块链网络的各个节点中,使得参与到区块链中的各个节点共同维护一个可靠数据库。由此,区块链具有去中心化、不可篡改、过程透明可追踪等技术优势,其被认为在金融、征信、物联网、经济贸易结算、资产管理等众多领域都拥有广泛的应用前景。
[0003] 然而,现有的区块链系统中,由于缺少自动化的网络资源监控体系,在区块链系统使用后期由于用户的增多,导致区块链节点对用户的请求响应不及时,甚至出现节点瘫痪的情况,这就使得区块链的网络访问质量越来越差。

发明内容

[0004] 本发明旨在至少在一定程度上解决上述技术中的技术问题之一。
[0005] 为此,本发明的第一个目的在于提出一种区块链系统中区块链账户创建时的限制方法,通过自动停用区块链账户创建功能,能够在保护区块链用户规模的情况下,限制账户无止境增多,从而避免区块链系统网络资源被耗尽,大大提高了区块链的网络访问质量。
[0006] 本发明的第二个目的在于提出一种计算机可读存储介质。
[0007] 本发明的第三个目的在于提出一种区块链系统中区块链账户创建时的限制装置。
[0008] 本发明的第四个目的在于提出一种区块链系统。
[0009] 为达到上述目的,本发明第一方面实施例提出了一种区块链系统中区块链账户创建时的限制方法,该方法包括以下步骤:当区块链系统中的任意一个节点接收到广播包时,对所述广播包进行解析以获得所述广播包内操作的发起时间,并获取当前时间与所述发起时间之间的时间差以作为延时时间,以及将所述延时时间置于该节点存储的广播包延时时间队列的队尾;判断所述广播包延时时间队列的当前长度是否超出队列允许的最大长度;如果所述广播包延时时间队列的当前长度超出队列允许的最大长度,则删除所述广播包延时时间队列的头数据,并根据当前广播包延时时间队列内的所有延时时间之和与当前广播包延时时间队列的长度计算当前平均延时时间;判断当前平均延时时间是否小于所述区块链系统可容忍的最大平均延迟时间;如果当前平均延时时间小于所述区块链系统可容忍的最大平均延迟时间,则允许新的区块链账户创建;如果当前平均延时时间大于等于所述区块链系统可容忍的最大平均延迟时间,则禁止新的区块链账户创建。
[0010] 根据本发明实施例的区块链系统中区块链账户创建时的限制方法,当区块链系统中的任意一个节点接收到广播包时,对广播包进行解析以获得广播包内操作的发起时间,并获取当前时间与发起时间之间的时间差以作为延时时间,以及将延时时间置于该节点存储的广播包延时时间队列的队尾,接着判断广播包延时时间队列的当前长度是否超出队列允许的最大长度,并在广播包延时时间队列的当前长度超出队列允许的最大长度时删除广播包延时时间队列的头数据,并根据当前广播包延时时间队列内的所有延时时间之和与当前广播包延时时间队列的长度计算当前平均延时时间,然后进一步判断当前平均延时时间是否小于区块链系统可容忍的最大平均延迟时间,其中,如果当前平均延时时间小于区块链系统可容忍的最大平均延迟时间,则允许新的区块链账户创建;如果当前平均延时时间大于等于区块链系统可容忍的最大平均延迟时间,则禁止新的区块链账户创建。由此,本发明能够通过比较当前平均延时时间和系统可容忍的最大平均延迟时间的大小,以判断是否停用区块链账户创建功能,这样在保护区块链用户规模的情况下,限制账户无止境增多,从而避免区块链系统网络资源被耗尽,大大提高了区块链的网络访问质量。
[0011] 另外,根据本发明上述实施例提出的区块链系统中区块链账户创建时的限制方法还可以具有如下附加的技术特征:
[0012] 可选地,当所述广播包延时时间队列的当前长度未超出队列允许的最大长度时,直接根据所述广播包延时时间队列内的所有延时时间之和与所述广播包延时时间队列的当前长度计算当前平均延时时间。
[0013] 可选地,所述广播包延时时间队列在所述区块链系统的初始节点启动并创建创世区块后建立,并在所述区块链系统内同步到每个节点。
[0014] 可选地,所述队列允许的最大长度为全局常量,所述区块链系统可容忍的最大平均延迟时间为全局变量、且可被所述区块链系统以共识机制投票改变。
[0015] 为达到上述目的,本发明第二方面实施例提出了一种计算机可读存储介质,其上存储有区块链系统中区块链账户创建时的限制程序,该区块链系统中区块链账户创建时的限制程序被处理器执行时实现如上述的区块链系统中区块链账户创建时的限制方法。
[0016] 根据本发明实施例的计算机可读存储介质,通过存储区块链系统中区块链账户创建时的限制程序,这样区块链系统中区块链账户创建时的限制程序被处理器执行时实现如上述的区块链系统中区块链账户创建时的限制方法,由此,能够通过比较当前平均延时时间和系统可容忍的最大平均延迟时间的大小,以判断是否停用区块链账户创建功能,这样在保护区块链用户规模的情况下,限制账户无止境增多,从而避免区块链系统网络资源被耗尽,大大提高了区块链的网络访问质量。
[0017] 为达到上述目的,本发明第三方面实施例提出了一种区块链系统中区块链账户创建时的限制装置,包括解析模块,用于在所述区块链系统中的任意一个节点接收到广播包时,对所述广播包进行解析以获得所述广播包内操作的发起时间,并获取当前时间与所述发起时间之间的时间差以作为延时时间,以及将所述延时时间置于该节点存储的广播包延时时间队列的队尾;第一判断模块,用于判断所述广播包延时时间队列的当前长度是否超出队列允许的最大长度;延时时间计算模块,用于在所述广播包延时时间队列的当前长度超出队列允许的最大长度时删除所述广播包延时时间队列的头数据,并根据当前广播包延时时间队列内的所有延时时间之和与当前广播包延时时间队列的长度计算当前平均延时时间;第二判断模块,用于判断当前平均延时时间是否小于所述区块链系统可容忍的最大平均延迟时间;限制模块,用于在当前平均延时时间小于所述区块链系统可容忍的最大平均延迟时间时允许新的区块链账户创建,还用于在当前平均延时时间大于等于所述区块链系统可容忍的最大平均延迟时间时禁止新的区块链账户创建。
[0018] 根据本发明实施例的区块链系统中区块链账户创建时的限制装置,当区块链系统中的任意一个节点接收到广播包时,通过解析模块对广播包进行解析以获得广播包内操作的发起时间,并获取当前时间与发起时间之间的时间差以作为延时时间,以及将延时时间置于该节点存储的广播包延时时间队列的队尾,并通过第一判断模块判断广播包延时时间队列的当前长度是否超出队列允许的最大长度,然后延时时间计算模块在广播包延时时间队列的当前长度超出队列允许的最大长度时删除广播包延时时间队列的头数据,并根据当前广播包延时时间队列内的所有延时时间之和与当前广播包延时时间队列的长度计算当前平均延时时间,最后通过第二判断判断当前平均延时时间是否小于区块链系统可容忍的最大平均延迟时间,这样限制模块在当前平均延时时间小于区块链系统可容忍的最大平均延迟时间时允许新的区块链账户创建,而在当前平均延时时间大于等于区块链系统可容忍的最大平均延迟时间时禁止新的区块链账户创建。由此,本发明能够通过比较当前平均延时时间和系统可容忍的最大平均延迟时间的大小,以判断是否停用区块链账户创建功能,这样在保护区块链用户规模的情况下,限制账户无止境增多,从而避免区块链系统网络资源被耗尽,大大提高了区块链的网络访问质量。
[0019] 另外,根据本发明上述实施例提出的区块链系统中区块链账户创建时的限制装置,还可以具有如下附加的技术特征:
[0020] 可选地,所述延时时间计算模块还用于,当所述广播包延时时间队列的当前长度未超出队列允许的最大长度时,直接根据所述广播包延时时间队列内的所有延时时间之和与所述广播包延时时间队列的当前长度计算当前平均延时时间。
[0021] 可选地,所述广播包延时时间队列在所述区块链系统的初始节点启动并创建创世区块后建立,并在所述区块链系统内同步到每个节点。
[0022] 可选地,所述队列允许的最大长度为全局常量,所述区块链系统可容忍的最大平均延迟时间为全局变量、且可被所述区块链系统以共识机制投票改变。
[0023] 为达到上述目的,本发明第四方面实施例提出了一种区块链系统,其包括如上述的区块链系统中区块链账户创建时的限制装置。
[0024] 根据本发明实施例的区块链系统,通过上述的区块链系统中区块链账户创建时的限制装置,能够通过比较当前平均延时时间和系统可容忍的最大平均延迟时间的大小,以判断是否停用区块链账户创建功能,这样在保护区块链用户规模的情况下,限制账户无止境增多,从而避免区块链系统网络资源被耗尽,大大提高了区块链的网络访问质量。

附图说明

[0025] 图1为根据本发明实施例的区块链系统中区块链账户创建时的限制方法的流程示意图;
[0026] 图2为根据本发明另一实施例的区块链系统中区块链账户创建时的限制方法的流程示意图;
[0027] 图3为根据本发明实施例的区块链系统中区块链账户创建时的限制装置的方框示意图。

具体实施方式

[0028] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
[0029] 现有的区块链系统中,通过将数据记录存储在区块链系统的各个节点中,由于缺少自动化的网络资源监控体系,当区块链系统使用到后期时,由于使用人员过多,会导致区块链节点对用户的请求响应不及时,甚至出现节点瘫痪的情况。为了保证区块链的网络访问质量,本发明实施例提出了一种区块链系统中区块链账户创建时的限制方法,当区块链系统中的任意一个节点接收到广播包时,对广播包进行解析以获得广播包内操作的发起时间,并获取当前时间与发起时间之间的时间差以作为延时时间,以及将延时时间置于该节点存储的广播包延时时间队列的队尾,接着判断广播包延时时间队列的当前长度是否超出队列允许的最大长度,并在广播包延时时间队列的当前长度超出队列允许的最大长度时删除广播包延时时间队列的头数据,并根据当前广播包延时时间队列内的所有延时时间之和与当前广播包延时时间队列的长度计算当前平均延时时间,然后进一步判断当前平均延时时间是否小于区块链系统可容忍的最大平均延迟时间,其中,如果当前平均延时时间小于区块链系统可容忍的最大平均延迟时间,则允许新的区块链账户创建;如果当前平均延时时间大于等于区块链系统可容忍的最大平均延迟时间,则禁止新的区块链账户创建。由此,本发明能够通过比较当前平均延时时间和系统可容忍的最大平均延迟时间的大小,以判断是否停用区块链账户创建功能,这样在保护区块链用户规模的情况下,限制账户无止境增多,从而避免区块链系统网络资源被耗尽,大大提高了区块链的网络访问质量。
[0030] 为了更好的理解上述技术方案,下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
[0031] 为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
[0032] 图1为本发明实施例提出的区块链系统中区块链账户创建时的限制方法的流程示意图。
[0033] 如图1所示,该区块链系统中区块链账户创建时的限制方法包括以下步骤:
[0034] 步骤101,当区块链系统中的任意一个节点接收到广播包时,对广播包进行解析以获得广播包内操作的发起时间,并获取当前时间与发起时间之间的时间差以作为延时时间,以及将延时时间置于该节点存储的广播包延时时间队列的队尾。
[0035] 区块链系统包括多个节点,其中,当区块链系统中的任意一个节点接收到区块链系统中其他节点发送的广播包时,该任意一个节点对广播包进行解析,获得广播包内操作的发起时间,并获取当前时间,然后通过将该发起时间与当前时间做差值,从而获得广播包发送的延时时间,并将该延时时间置于该任意一个节点存储的广播包延时时间队列的队尾。
[0036] 作为一个实施例,上述广播包延时时间队列在区块链系统的初始节点启动并创建创世区块后建立,并在区块链系统内同步到每个节点。即言,区块链系统中的每个节点都存有广播包延时时间队列。
[0037] 需要说明的是,上述初始节点在与其他节点相连接之前,由于未接收到来自其他节点的广播包,因此广播包延时时间队列中未存在任何数据。
[0038] 步骤102,判断广播包延时时间队列的当前长度是否超出队列允许的最大长度。
[0039] 也就是说,当该延时时间置于该节点存储的广播包延时时间队列的队尾后,判断广播包延时时间队列的当前长度是否超出预先设置的队列允许的最大长度。
[0040] 作为一个实施例,上述队列允许的最大长度为全局常量,该值表示队列的最大长度。
[0041] 步骤103,如果广播包延时时间队列的当前长度超出队列允许的最大长度,则删除广播包延时时间队列的头数据,并根据当前广播包延时时间队列内的所有延时时间之和与当前广播包延时时间队列的长度计算当前平均延时时间。
[0042] 作为一个实施例,上述当前平均延时时间的计算公式为:当前广播包延时时间队列内的所有延时时间之和/当前广播包延时时间队列的长度=当前平均延时时间。
[0043] 步骤104,判断当前平均延时时间是否小于区块链系统可容忍的最大平均延迟时间。如果是,则执行步骤105;如果否,则执行步骤106。
[0044] 作为一个实施例,上述区块链系统可容忍的最大平均延迟时间为全局变量,且该变量可被区块链系统以共识机制投票改变。
[0045] 步骤105,如果当前平均延时时间小于区块链系统可容忍的最大平均延迟时间,则允许新的区块链账户创建。
[0046] 作为一个实施例,如果当前平均延时时间小于区块链系统可容忍的最大平均延迟时间,则区块链系统中的新账户注册允许标志位置为1,允许新的区块链账户创建。
[0047] 步骤106,如果当前平均延时时间大于等于区块链系统可容忍的最大平均延迟时间,则禁止新的区块链账户创建。
[0048] 作为一个实施例,如果当前平均延时时间大于等于区块链系统可容忍的最大平均延迟时间,则区块链系统中的新账户注册允许标志位置为0,禁止新的区块链账户创建。
[0049] 也就是说,在本发明的实施例中,当新用户连入区块链节点以发起注册新的区块链账户的操作时,如果新账户注册允许标志位置为0,则不允许连入用户发送的注册请求;如果新账户注册允许标志位置为1,则允许连入用户发送的注册请求,可以正常注册。
[0050] 根据本发明实施例的区块链系统中区块链账户创建时的限制方法,当区块链系统中的任意一个节点接收到广播包时,对广播包进行解析以获得广播包内操作的发起时间,并获取当前时间与发起时间之间的时间差以作为延时时间,以及将延时时间置于该节点存储的广播包延时时间队列的队尾,接着判断广播包延时时间队列的当前长度是否超出队列允许的最大长度,并在广播包延时时间队列的当前长度超出队列允许的最大长度时删除广播包延时时间队列的头数据,并根据当前广播包延时时间队列内的所有延时时间之和与当前广播包延时时间队列的长度计算当前平均延时时间,然后进一步判断当前平均延时时间是否小于区块链系统可容忍的最大平均延迟时间,其中,如果当前平均延时时间小于区块链系统可容忍的最大平均延迟时间,则允许新的区块链账户创建;如果当前平均延时时间大于等于区块链系统可容忍的最大平均延迟时间,则禁止新的区块链账户创建。由此,本发明能够通过比较当前平均延时时间和系统可容忍的最大平均延迟时间的大小,以判断是否停用区块链账户创建功能,这样在保护区块链用户规模的情况下,限制账户无止境增多,从而避免区块链系统网络资源被耗尽,大大提高了区块链的网络访问质量。
[0051] 为了进一步理解上述技术方案,下面将通过图2对上述技术方案进行详细的说明。
[0052] 图2为一个具体实施例的区块链系统中区块链账户创建时的限制方法的流程示意图。
[0053] 如图2所示,该区块链系统中区块链账户创建时的限制方法包括以下步骤:
[0054] 步骤201,节点X收到其他节点传来的广播包。
[0055] 需要说明的是,区块链系统中包含多个节点,且各个节点之间相连接,其中任意一个节点X都可接收到其他节点传来的广播包。
[0056] 步骤202,节点X解析广播包。
[0057] 步骤203,节点X获得该包内操作的发起时间。
[0058] 步骤204,节点X将该发起时间与当前时间做差值,获得操作延时时间。
[0059] 作为一个实施例,区块链系统中的节点X将该广播包的发起时间与接收到广播包的当前时间做差值,得到操作的延时时间。
[0060] 步骤205,节点X将该延时时间放入该节点存储的广播包延时时间队列的队尾。
[0061] 作为一个实施例,上述广播包延时时间队列在区块链系统的初始节点启动并创建创世区块后建立,并在区块链系统内同步到每个节点。
[0062] 需要说明的是,上述初始节点在与其他节点相连接之前,由于未接收到来自其他节点的广播包,因此广播包延时时间队列中未存在任何数据。
[0063] 步骤206,判断广播包延时时间队列的当前长度是否超出队列允许的最大长度。如果是,则执行步骤207;如果否,则执行步骤208。
[0064] 作为一个实施例,上述队列允许的最大长度为全局常量。
[0065] 步骤207,删除广播包延时时间队列的头数据。
[0066] 步骤208,根据当前广播包延时时间队列内的所有延时时间之和与当前广播包延时时间队列的长度计算当前平均延时时间。
[0067] 作为一个实施例,假设广播包时时间队列内的所有延时时间为a1、a2...an;当前广播包延时时间队列的长度为n;当前平均延时时间为d;则当前平均延时时间
[0068] 步骤209,判断当前平均延时时间是否小于区块链系统可容忍的最大平均延迟时间。如果是,则执行步骤210;如果否,则执行步骤212。
[0069] 作为一个实施例,上述区块链系统可容忍的最大平均延迟时间为全局变量,且该变量可被区块链系统以共识机制投票改变。
[0070] 步骤210,节点X允许连入用户发送注册请求。
[0071] 需要说明的是,当当前平均延时时间小于区块链系统可容忍的最大平均延迟时间时,节点X中新账户注册允许标志位=1,节点X允许连入用户发送注册请求。
[0072] 步骤211,正常注册。
[0073] 步骤212,节点X不允许连入用户发送注册请求。
[0074] 需要说明的是,当当前平均延时时间大于等于区块链系统可容忍的最大平均延迟时间时,节点X中新账户注册允许标志位=0,节点X允许连入用户发送注册请求;即禁止新的区块链账户创建。
[0075] 步骤213,请求返回失败。
[0076] 根据本发明实施例的区块链系统中区块链账户创建时的限制方法,当区块链系统中的任意一个节点接收到广播包时,对广播包进行解析以获得广播包内操作的发起时间,并获取当前时间与发起时间之间的时间差以作为延时时间,以及将延时时间置于该节点存储的广播包延时时间队列的队尾,接着判断广播包延时时间队列的当前长度是否超出队列允许的最大长度,并在广播包延时时间队列的当前长度超出队列允许的最大长度时删除广播包延时时间队列的头数据,并根据当前广播包延时时间队列内的所有延时时间之和与当前广播包延时时间队列的长度计算当前平均延时时间,然后进一步判断当前平均延时时间是否小于区块链系统可容忍的最大平均延迟时间,其中,如果当前平均延时时间小于区块链系统可容忍的最大平均延迟时间,则允许新的区块链账户创建;如果当前平均延时时间大于等于区块链系统可容忍的最大平均延迟时间,则禁止新的区块链账户创建。由此,本发明能够通过比较当前平均延时时间和系统可容忍的最大平均延迟时间的大小,以判断是否停用区块链账户创建功能,这样在保护区块链用户规模的情况下,限制账户无止境增多,从而避免区块链系统网络资源被耗尽,大大提高了区块链的网络访问质量。
[0077] 为了实现上述实施例,本发明实施例提出了一种计算机可读存储介质,其上存储有区块链系统中区块链账户创建时的限制程序,该区块链系统中区块链账户创建时的限制程序被处理器执行时实现如上述的区块链系统中区块链账户创建时的限制方法。
[0078] 根据本发明实施例的计算机可读存储介质,通过存储区块链系统中区块链账户创建时的限制程序,这样区块链系统中区块链账户创建时的限制程序被处理器执行时实现如上述的区块链系统中区块链账户创建时的限制方法,由此,本发明能够通过比较当前平均延时时间和系统可容忍的最大平均延迟时间的大小,以判断是否停用区块链账户创建功能,这样在保护区块链用户规模的情况下,限制账户无止境增多,从而避免区块链系统网络资源被耗尽,大大提高了区块链的网络访问质量。
[0079] 图3为本发明实施例提供的区块链系统中区块链账户创建时的限制装置的方框示意图。如图3所示,该限制装置包括:解析模块301、第一判断模块302、延时时间计算模块303、第二判断模块304、限制模块305。
[0080] 其中,解析模块301,用于在区块链系统中的任意一个节点接收到广播包时,对广播包进行解析以获得广播包内操作的发起时间,并获取当前时间与发起时间之间的时间差以作为延时时间,以及将延时时间置于该节点存储的广播包延时时间队列的队尾。
[0081] 第一判断模块302,用于判断广播包延时时间队列的当前长度是否超出队列允许的最大长度。
[0082] 延时时间计算模块303,用于在广播包延时时间队列的当前长度超出队列允许的最大长度时删除广播包延时时间队列的头数据,并根据当前广播包延时时间队列内的所有延时时间之和与当前广播包延时时间队列的长度计算当前平均延时时间。
[0083] 第二判断模块304,用于判断当前平均延时时间是否小于区块链系统可容忍的最大平均延迟时间。
[0084] 限制模块305,用于在当前平均延时时间小于区块链系统可容忍的最大平均延迟时间时允许新的区块链账户创建,还用于在当前平均延时时间大于等于区块链系统可容忍的最大平均延迟时间时禁止新的区块链账户创建。
[0085] 作为一个实施例,上述延时时间计算模块303还用于,当广播包延时时间队列的当前长度未超出队列允许的最大长度时,直接根据广播包延时时间队列内的所有延时时间之和与广播包延时时间队列的当前长度计算当前平均延时时间。
[0086] 作为一个实施例,上述广播包延时时间队列在区块链系统的初始节点启动并创建创世区块后建立,并在区块链系统内同步到每个节点。
[0087] 作为一个实施例,上述队列允许的最大长度为全局常量,区块链系统可容忍的最大平均延迟时间为全局变量、且可被区块链系统以共识机制投票改变。
[0088] 根据本发明实施例的区块链系统中区块链账户创建时的限制装置,当区块链系统中的任意一个节点接收到广播包时,通过解析模块对广播包进行解析以获得广播包内操作的发起时间,并获取当前时间与发起时间之间的时间差以作为延时时间,以及将延时时间置于该节点存储的广播包延时时间队列的队尾,并通过第一判断模块判断广播包延时时间队列的当前长度是否超出队列允许的最大长度,然后延时时间计算模块在广播包延时时间队列的当前长度超出队列允许的最大长度时删除广播包延时时间队列的头数据,并根据当前广播包延时时间队列内的所有延时时间之和与当前广播包延时时间队列的长度计算当前平均延时时间,最后通过第二判断判断当前平均延时时间是否小于区块链系统可容忍的最大平均延迟时间,这样限制模块在当前平均延时时间小于区块链系统可容忍的最大平均延迟时间时允许新的区块链账户创建,而在当前平均延时时间大于等于区块链系统可容忍的最大平均延迟时间时禁止新的区块链账户创建。由此,本发明能够通过比较当前平均延时时间和系统可容忍的最大平均延迟时间的大小,以判断是否停用区块链账户创建功能,这样在保护区块链用户规模的情况下,限制账户无止境增多,从而避免区块链系统网络资源被耗尽,大大提高了区块链的网络访问质量。
[0089] 为了实现上述实施例,本发明实施例提出了一种区块链系统,该区块链系统包括上述的区块链系统中区块链账户创建时的限制装置。
[0090] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0091] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0092] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0093] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0094] 应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0095] 尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0096] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
[0097] 在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0098] 在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0099] 在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
[0100] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不应理解为必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0101] 尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。