基于区块链的NB-IoT中终端交易处理方法及装置转让专利

申请号 : CN202010237761.4

文献号 : CN113472825B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 宋国兴张建强高宗宝张家铭刘丽美

申请人 : 中国移动通信集团设计院有限公司(CN)中国移动通信集团有限公司(CN)

摘要 :

本发明提供一种基于区块链的NB‑IoT中终端交易处理方法及装置,方法包括:将NB‑IoT中的终端作为区块链中的终端节点,对于任一所述终端节点,根据该终端节点产生有效的区块和无效的区块的数量,确定该终端节点的状态;获取所述区块链中除该终端节点以外的其他终端节点根据该终端节点的状态对该终端节点的投票结果,并获取该终端节点的投票统计结果;根据该终端节点的投票统计结果确定该终端节点是否为代理节点,若是,则使用该终端节点收集所述区块链中所有终端节点之间的交易,并根据所述交易产生区块,并将产生的所述区块传递到所述其他终端节点。本发明能够降低异常节点竞选为代理节点的可能,保证了系统的安全性和稳定性。

权利要求 :

1.一种基于区块链的NB‑IoT中终端交易处理方法,其特征在于,包括:将NB‑IoT中的终端作为区块链中的终端节点,对于任一所述终端节点,根据该终端节点产生有效的区块和无效的区块的数量,确定该终端节点的状态;

获取所述区块链中除该终端节点以外的其他终端节点根据该终端节点的状态对该终端节点的投票结果,统计所述其他终端节点对该终端节点的投票结果,获取该终端节点的投票统计结果;

根据该终端节点的投票统计结果确定该终端节点是否为代理节点,若是,则使用该终端节点收集所述区块链中所有终端节点之间的交易,并根据所述交易产生区块,并将产生的所述区块传递到所述其他终端节点;

根据该终端节点产生有效的区块和无效的区块的数量,确定该终端节点的状态的步骤包括:若该终端节点持续产生有效的区块,且所述有效的区块的个数大于第一预设阈值,则确定该终端节点的状态为第一状态;

若该终端节点产生无效的区块的个数小于第二预设阈值,则确定该终端节点的状态为第二状态;

若该终端节点产生无效的区块的个数大于第三预设阈值,则确定该终端节点的状态为第三状态;

若该终端节点产生的区块全部为有效的区块,则确定该终端节点的状态为第四状态。

2.根据权利要求1所述的基于区块链的NB‑IoT中终端交易方法,其特征在于,根据该终端节点产生有效的区块和无效的区块的数量,确定该终端节点的状态的步骤还包括:若该终端节点的状态为第三状态,则该终端节点在预设时间段内不参与代理节点的竞选。

3.根据权利要求1所述的基于区块链的NB‑IoT中终端交易方法,其特征在于,所述投票结果包括反对票和支持票;

所述投票统计结果包括所有所述其他终端节点对该终端节点的投票结果中反对票的总票数和支持票的总票数。

4.根据权利要求1‑3任一所述的基于区块链的NB‑IoT中终端交易方法,其特征在于,统计所述其他终端节点对该终端节点的投票结果,获取该终端节点的投票统计结果的步骤包括:根据该终端节点最近两次投票的时间间隔和该终端节点上次更新的信用系数,计算该终端节点本次更新的信用系数;

根据该终端节点本次更新的信用系数和所述其他终端节点对该终端节点的投票结果,获取该终端节点的投票统计结果。

5.根据权利要求4所述的基于区块链的NB‑IoT中终端交易方法,其特征在于,通过以下公式根据该终端节点最近两次投票的时间间隔和该终端节点上次更新的信用系数,计算该终端节点本次更新的信用系数:Cren=Cren‑1‑Floor(t/T)*M;

其中,Cren为该终端节点第n次更新的信用系数,Cren‑1为该终端节点第n‑1次更新的信用系数,n为正整数,Floor为向下取整函数,t为该终端节点最近两次投票的时间间隔,T为预设时间,M为预设衰减系数。

6.根据权利要求5所述的基于区块链的NB‑IoT中终端交易方法,其特征在于,根据该终端节点最近两次投票的时间间隔和该终端节点上次更新的信用系数,计算该终端节点本次更新的信用系数的步骤还包括:若该终端节点对状态为第二状态的所述其他终端节点投反对票,且被投反对票的所述其他终端节没有竞选为代理节点,则对该终端节点本次更新的信用系数进行增加;其中,状态为第二状态的所述其他终端节点为产生无效的区块的个数小于第二预设阈值的所述其他终端节点。

7.根据权利要求4所述的基于区块链的NB‑IoT中终端交易方法,其特征在于,通过以下公式根据该终端节点本次更新的信用系数和所述其他终端节点对该终端节点的投票结果,获取该终端节点的投票统计结果:VoteResult=a*Cre+b*Vote‑c*NeVote;

其中,VoteResult表示所述投票统计结果,Cre表示该终端节点本次更新的信用系数,Vote表示所有所述其他终端节点对该终端节点的投票结果中支持票的总票数,NeVote表示所有所述其他终端节点对该终端节点的投票结果中反对票的总票数,a为与所述区块链中所有终端节点的个数、代理节点的个数相关的系数,b和c为预设常数。

8.一种基于区块链的NB‑IoT中终端交易装置,其特征在于,包括:确定模块,用于将NB‑IoT中的终端作为区块链中的终端节点,对于任一所述终端节点,根据该终端节点产生有效的区块和无效的区块的数量,确定该终端节点的状态;

获取模块,用于获取所述区块链中除该终端节点以外的其他终端节点根据该终端节点的状态对该终端节点的投票结果,统计所述其他终端节点对该终端节点的投票结果,获取该终端节点的投票统计结果;

处理模块,用于根据该终端节点的投票统计结果确定该终端节点是否为代理节点,若是,则使用该终端节点收集所述区块链中所有终端节点之间的交易,并根据所述交易产生区块,并将产生的所述区块传递到所述其他终端节点;

所述确定模块还用于:

若该终端节点持续产生有效的区块,且所述有效的区块的个数大于第一预设阈值,则确定该终端节点的状态为第一状态;

若该终端节点产生无效的区块的个数小于第二预设阈值,则确定该终端节点的状态为第二状态;

若该终端节点产生无效的区块的个数大于第三预设阈值,则确定该终端节点的状态为第三状态;

若该终端节点产生的区块全部为有效的区块,则确定该终端节点的状态为第四状态。

9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述基于区块链的NB‑IoT中终端交易方法的步骤。

说明书 :

基于区块链的NB‑IoT中终端交易处理方法及装置

技术领域

[0001] 本发明属于区块链技术领域,尤其涉及一种基于区块链的NB‑IoT中终端交易处理方法及装置。

背景技术

[0002] NB‑IoT(Narrow Band Internet of Things,窄带物联网)中的终端具有强连接、超低功耗、深度覆盖、低成本、安全性、稳定可靠的特点。广泛应用于智能城市、智能家庭、环境监测等终端设备位置固定的场景。但是低成本、低功耗的特点也决定了NB‑IoT中终端芯片本身具备较弱的计算能力和存储能力,不宜实时在线,无法快速移动,同时也存在隐私保护和无法有效防范黑客攻击的问题。
[0003] 区块链作为一种去中心化、分布式的技术体系,在NB‑IoT中的应用可以实现一个无需中心服务器管理、无需区分厂商的管理与服务体系。在这个体系里,厂商可以对本厂设备进行点对点管理,而在消费者和网络层面则无需关心厂商的区别,只需要设备按照统一的接入协议顺利获得入网权即可。区块链所具有的加密算法及共识机制决定了黑客无法非法控制物联网设备的交易,也就无法获得设备的控制器。其中共识算法DPOS(Delegated Proof of Stake,委托权益证明)及其改进算法由于其零手续、点对点交互的特性得到了广泛应用。
[0004] 区块链技术在NB‑IoT的应用,虽然避免了不同厂商设备的管理和服务体系,加密算法和共识机制减少了黑客攻击。但是不同共识算法由于具体场景的不同,在资源消耗、安全性及达成共识的时间方面各有不同。其中,被广泛应用的DPOS共识算法虽然终端节点通过投票选取代理节点产生区块的方式使的达成共识的时间可以缩短为秒级,但是如果代理节点中出现恶意节点,不能及时发现并及时剔除,将会导致区块链系统的安全性降低。

发明内容

[0005] 为克服上述现有的DPOS共识算法应用到NB‑IoT中导致区块链系统的安全性降低的问题或者至少部分地解决上述问题,本发明实施例提供一种基于区块链的NB‑IoT中终端交易处理方法及装置。
[0006] 根据本发明实施例的第一方面,提供一种基于区块链的NB‑IoT中终端交易处理方法,包括:
[0007] 将NB‑IoT中的终端作为区块链中的终端节点,对于任一所述终端节点,根据该终端节点产生有效的区块和无效的区块的数量,确定该终端节点的状态;
[0008] 获取所述区块链中除该终端节点以外的其他终端节点根据该终端节点的状态对该终端节点的投票结果,统计所述其他终端节点对该终端节点的投票结果,获取该终端节点的投票统计结果;
[0009] 根据该终端节点的投票统计结果确定该终端节点是否为代理节点,若是,则使用该终端节点收集所述区块链中所有终端节点之间的交易,并根据所述交易产生区块,并将产生的所述区块传递到所述其他终端节点。
[0010] 具体地,根据该终端节点产生有效的区块和无效的区块的数量,确定该终端节点的状态的步骤包括:
[0011] 若该终端节点持续产生有效的区块,且所述有效的区块的个数大于第一预设阈值,则确定该终端节点的状态为第一状态;
[0012] 若该终端节点产生无效的区块的个数小于第二预设阈值,则确定该终端节点的状态为第二状态;
[0013] 若该终端节点产生无效的区块的个数大于第三预设阈值,则确定该终端节点的状态为第三状态;
[0014] 若该终端节点产生的区块全部为有效的区块,则确定该终端节点的状态为第四状态。
[0015] 具体地,根据该终端节点产生有效的区块和无效的区块的数量,确定该终端节点的状态的步骤还包括:
[0016] 若该终端节点的状态为第三状态,则该终端节点在预设时间段内不参与代理节点的竞选。
[0017] 具体地,所述投票结果包括反对票和支持票;
[0018] 所述投票统计结果包括所有所述其他终端节点对该终端节点的投票结果中反对票的总票数和支持票的总票数。
[0019] 具体地,统计所述其他终端节点对该终端节点的投票结果,获取该终端节点的投票统计结果的步骤包括:
[0020] 根据该终端节点最近两次投票的时间间隔和该终端节点上次更新的信用系数,计算该终端节点本次更新的信用系数;
[0021] 根据该终端节点本次更新的信用系数和所述其他终端节点对该终端节点的投票结果,获取该终端节点的投票统计结果。
[0022] 具体地,通过以下公式根据该终端节点最近两次投票的时间间隔和该终端节点上次更新的信用系数,计算该终端节点本次更新的信用系数:
[0023] Cren=Cren‑1‑Floor(t/T)*M;
[0024] 其中,Cren为该终端节点第n次更新的信用系数,Cren‑1该终端节点第n‑1次更新的信用系数,n为正整数,Floor为向下取整函数,t为该终端节点最近两次投票的时间间隔,T为预设时间,M为预设衰减系数。
[0025] 具体地,根据该终端节点最近两次投票的时间间隔和该终端节点上次更新的信用系数,计算该终端节点本次更新的信用系数的步骤还包括:
[0026] 若该终端节点对状态为第二状态的所述其他终端节点投反对票,且被投反对票的所述其他终端节没有竞选为代理节点,则对该终端节点本次更新的信用系数进行增加;其中,状态为第二状态的所述其他终端节点为产生无效的区块的个数小于第二预设阈值的所述其他终端节点。
[0027] 具体地,通过以下公式根据该终端节点本次更新的信用系数和所述其他终端节点对该终端节点的投票结果,获取该终端节点的投票统计结果:
[0028] VoteResult=a*Cre+b*Vote‑c*NeVote;
[0029] 其中,VoteResult表示所述投票统计结果,Cre表示该终端节点本次更新的信用系数,Vote表示所有所述其他终端节点对该终端节点的投票结果中支持票的总票数,NeVote表示所有所述其他终端节点对该终端节点的投票结果中反对票的总票数,a与所述区块链中所有终端节点的个数、代理节点的个数相关的系数,b和c为预设常数。
[0030] 根据本发明实施例第二方面提供一种基于区块链的NB‑IoT中终端交易处理装置,包括:
[0031] 确定模块,用于将NB‑IoT中的终端作为区块链中的终端节点,对于任一所述终端节点,根据该终端节点产生有效的区块和无效的区块的数量,确定该终端节点的状态;
[0032] 获取模块,用于获取所述区块链中除该终端节点以外的其他终端节点根据该终端节点的状态对该终端节点的投票结果,统计所述其他终端节点对该终端节点的投票结果,获取该终端节点的投票统计结果;
[0033] 处理模块,用于根据该终端节点的投票统计结果确定该终端节点是否为代理节点,若是,则使用该终端节点收集所述区块链中所有终端节点之间的交易,并根据所述交易产生区块,并将产生的所述区块传递到所述其他终端节点。
[0034] 根据本发明实施例的第三个方面,还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器调用所述程序指令能够执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的基于区块链的NB‑IoT中终端交易处理方法。
[0035] 本发明实施例提供一种基于区块链的NB‑IoT中终端交易处理方法及装置,该方法通过根据每个终端节点产生区块的数量和有效性确定每个终端节点的状态,对每个终端节点增加状态属性,从而根据终端节点的状态判断终端节点成为代理节点的可能性,避免异常终端节点产生恶意区块或者产生其他破坏系统安全的行为,在保证大规模NB‑IoT网络中终端节点快速响应的基础上,能够将异常终端节点及时剔除,保证了系统的安全性和稳定性。

附图说明

[0036] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0037] 图1为本发明实施例提供的基于区块链的NB‑IoT中终端交易处理方法整体流程示意图;
[0038] 图2为本发明实施例提供的基于区块链的NB‑IoT中终端交易处理方法中终端节点的状态转换示意图;
[0039] 图3为本发明实施例提供的基于区块链的NB‑IoT中终端交易处理装置整体结构示意图;
[0040] 图4为本发明实施例提供的电子设备整体结构示意图。

具体实施方式

[0041] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0042] 在本发明的一个实施例中提供一种基于区块链的NB‑IoT中终端交易处理方法,图1为本发明实施例提供的基于区块链的NB‑IoT中终端交易处理方法整体流程示意图,该方法包括:S101,将NB‑IoT中的终端作为区块链中的终端节点,对于任一所述终端节点,根据该终端节点产生有效的区块和无效的区块的数量,确定该终端节点的状态;
[0043] 其中,NB‑IoT中的终端是指NB‑IoT中的物联网设备。将区块链技术应用到NB‑IoT中,将NB‑IoT中的终端作为区块链的终端节点。如果终端节点在以前或上一次的代理节点竞选中被选为代理节点,则会产生区块,产生的区块分为有效的区块和无效的区块。由于终端节点的状态根据终端节点产生区块的有效性确定,终端节点在产生无效区块过多的情况下,很可能为恶意节点,会对区块链系统造成破坏,因此终端节点的状态反应终端节点的安全程度。为每个终端节点增加一个属性字段用来表征该终端节点的状态。
[0044] S102,获取所述区块链中除该终端节点以外的其他终端节点根据该终端节点的状态对该终端节点的投票结果,统计所述其他终端节点对该终端节点的投票结果,获取该终端节点的投票统计结果。
[0045] 将各终端节点的状态传递给其他终端节点,以供其他终端节点根据各终端节点的状态对各终端节点进行投票。对每个终端节点的投票结果进行投票统计,获取最终的投票统计结果。
[0046] S103,根据该终端节点的投票统计结果确定该终端节点是否为代理节点,若是,则使用该终端节点收集所述区块链中所有终端节点之间的交易,并根据所述交易产生区块,并将产生的所述区块传递到所述其他终端节点。
[0047] 对各终端节点的投票统计结果进行排序,将投票统计结果最高的预设个数的终端节点作为代理节点。代理节点收集NB‑IoT系统中产生的交易,并生产交易的区块,将交易打包到区块中。然后将区块传递到其他终端节点,以供其他终端节点对其进行存储,从而实现区块链系统中终端交易的共享。
[0048] 本实施例通过根据每个终端节点产生区块的数量和有效性确定每个终端节点的状态,对每个终端节点增加状态属性,从而根据终端节点的状态判断终端节点成为代理节点的可能性,避免异常终端节点产生恶意区块或者产生其他破坏系统安全的行为,在保证大规模NB‑IoT网络中终端节点快速响应的基础上,能够将异常终端节点及时剔除,保证了系统的安全性和稳定性。
[0049] 在上述实施例的基础上,本实施例中根据该终端节点产生有效的区块和无效的区块的数量,确定该终端节点的状态的步骤包括:若该终端节点持续产生有效的区块,且所述有效的区块的个数大于第一预设阈值,则确定该终端节点的状态为第一状态;若该终端节点产生无效的区块的个数小于第二预设阈值,则确定该终端节点的状态为第二状态;若该终端节点产生无效的区块的个数大于第三预设阈值,则确定该终端节点的状态为第三状态;若该终端节点产生的区块全部为有效的区块,则确定该终端节点的状态为第四状态。
[0050] 具体地,本实施例中将第一状态表示为G,将第二状态表示为EX,将第三状态表示为ER,将第四状态表示为N。终端节点的状态可以动态转换,从而及时调整终端节点成为代理节点的可能。状态是否转换由终端节点产生的区块数量和有效性决定。终端节点成为代理节点时,初始状态设置为N,并且在以后的代理节点竞选过程中可以正常参与;当该代理节点产生有效的区块个数大于第一预设阈值时,该代理节点的状态转换为G,该代理节点在下一次代理节点竞选中更容易胜出;如果该代理节点产生无效区块,则状态转换为EX,并且在下一次代理节点竞选中处于劣势;如果该代理节点产生的无效区块个数大于第三预设阈值,那么该代理节点的状态转变为ER,并且该代理节点在预设时间段内不可以参与代理节点的竞选,从而避免恶意节点对系统的破坏。终端节点的状态转换如图2所示。通过终端节点状态的转换,进一步缩短将异常终端节点剔除代理节点的时间。
[0051] 在上述实施例的基础上,本实施例中所述投票结果包括反对票和支持票;所述投票统计结果包括所有所述其他终端节点对该终端节点的投票结果中反对票的总票数和支持票的总票数。
[0052] 本实施例中终端节点可以通过投反对票来减少异常终端节点成为代理节点的可能,可以减少恶意节点从系统中剔除的时间。在区块链共识机制中,终端节点被公钥唯一标识,使得投票过程能够匿名进行,从而避免带有主观色彩的投票干扰投票过程的公正性。对状态为EX的终端节点,通过投反对票降低其成为代理节点的可能。
[0053] 在上述各实施例的基础上,本实施例中统计所述其他终端节点对该终端节点的投票结果,获取该终端节点的投票统计结果的步骤包括:根据该终端节点最近两次投票的时间间隔和该终端节点上次更新的信用系数,计算该终端节点本次更新的信用系数;根据该终端节点本次更新的信用系数和所述其他终端节点对该终端节点的投票结果,获取该终端节点的投票统计结果。
[0054] 其中,信用系数Cre用于表征系统中终端节点的信任程度。不同的区块链系统中信用系数的具体含义不同,需要与具体的业务场景相结合。通常情况下,信用系数Cre的范围为[0,100]中的整数,终端节点的初始信用系数设为50。在庞大的NB‑IoT体系中由于海量终端节点的存在,极容易出现终端节点投票不及时的情况,因此本实施例考虑到终端投票不及时对终端节点的信任程度的影响,根据终端节点最近两次投票的时间间隔对终端节点的信用系数进行更新。然后根据终端节点更新后的信用系数和投票结果,确定终端节点最终的投票统计结果。
[0055] 本实施例对每个终端节点增加信用系数,投票越不及时,信用系数越小。根据信用等级对终端节点进行奖惩,信用系数越低,终端节点成为代理节点的可能性越低。
[0056] 在上述实施例的基础上,本实施例通过以下公式根据该终端节点最近两次投票的时间间隔和该终端节点上次更新的信用系数,计算该终端节点本次更新的信用系数:
[0057] Cren=Cren‑1‑Floor(t/T)*M;
[0058] 其中,Cren为该终端节点第n次更新的信用系数,Cren‑1该终端节点第n‑1次更新的信用系数,n为正整数,Floor为向下取整函数,t为该终端节点最近两次投票的时间间隔,T为预设时间,M为预设衰减系数。
[0059] 具体地,本实施例使用奖惩算法对终端节点的信用系数进行更新。奖惩算法主要包括信用的衰减、信用的奖励、信用的恒定和时间t的更新。其中信用的衰减,即信用系数与时间成反比,在实际系统中代表某种价值的减少,满足上述公式。预设时间T和预设衰减系数M由具体系统决定。当t小于T时,Cre不变,信用恒定;当t大于T时,信用衰减。投票完成后,t值重新赋为0,鼓励终端节点继续投票。
[0060] 在上述实施例的基础上,本实施例根据该终端节点最近两次投票的时间间隔和该终端节点上次更新的信用系数,计算该终端节点本次更新的信用系数的步骤还包括:若该终端节点对状态为第二状态的所述其他终端节点投反对票,且被投反对票的所述其他终端节没有竞选为代理节点,则对该终端节点本次更新的信用系数进行增加;其中,状态为第二状态的所述其他终端节点为产生无效的区块的个数小于第二预设阈值的所述其他终端节点。
[0061] 具体地,在T时间内,每个终端节点只有一次投反对票的机会。如果某终端节点对状态为EX的终端节点投反对票,并且被投票的状态为EX的终端节点最终没有成为代理节点,则对投票的终端节点进行奖励,即增加信用系数。例如,将信用系数增加M,即Cren=Cren‑1+M。
[0062] 在上述实施例的基础上,本实施例通过以下公式根据该终端节点本次更新的信用系数和所述其他终端节点对该终端节点的投票结果,获取该终端节点的投票统计结果:
[0063] VoteResult=a*Cre+b*Vote‑c*NeVote;
[0064] 其中,VoteResult表示所述投票统计结果,Cre表示该终端节点本次更新的信用系数,Vote表示所有所述其他终端节点对该终端节点的投票结果中支持票的总票数,NeVote表示所有所述其他终端节点对该终端节点的投票结果中反对票的总票数,a与所述区块链中所有终端节点的个数、代理节点的个数相关的系数,在具体系统中由系统业务需求和系统安全级别决定;b和c为预设常数,满足c+b=1,初始值通常设为b=c=1/2。
[0065] 具体地,对投票结果进行合理统计不仅可以提高区块链系统的安全性,还可以快速确定终端节点是否能够成为代理节点。使用上面的公式对投票结果进行统计,对于信用系数低的终端节点需要更多的投票才有可能成为代理节点,可以降低状态为EX的终端节点成为代理节点的概率,异常终端节点剔除代理节点的时间也会缩短。
[0066] 本实施例通过对现有区块链共识算法DPOS进行优化改进,改进后的共识算法解决了区块链技术在NB‑IoT终端应用中存在恶意终端和终端响应不及时的问题。
[0067] 在本发明的另一个实施例中提供一种基于区块链的NB‑IoT中终端交易处理装置,该装置用于实现前述各实施例中的方法。因此,在前述基于区块链的NB‑IoT中终端交易处理方法的各实施例中的描述和定义,可以用于本发明实施例中各个执行模块的理解。图3为本发明实施例提供的基于区块链的NB‑IoT中终端交易处理装置整体结构示意图,该装置包括确定模块301、获取模块302和处理模块303,其中:
[0068] 确定模块301用于将NB‑IoT中的终端作为区块链中的终端节点,对于任一所述终端节点,根据该终端节点产生有效的区块和无效的区块的数量,确定该终端节点的状态;
[0069] 获取模块302用于获取所述区块链中除该终端节点以外的其他终端节点根据该终端节点的状态对该终端节点的投票结果,统计所述其他终端节点对该终端节点的投票结果,获取该终端节点的投票统计结果;
[0070] 处理模块303用于根据该终端节点的投票统计结果确定该终端节点是否为代理节点,若是,则使用该终端节点收集所述区块链中所有终端节点之间的交易,并根据所述交易产生区块,并将产生的所述区块传递到所述其他终端节点。
[0071] 本实施例通过根据每个终端节点产生区块的数量和有效性确定每个终端节点的状态,对每个终端节点增加状态属性,从而根据终端节点的状态判断终端节点成为代理节点的可能性,避免异常终端节点产生恶意区块或者产生其他破坏系统安全的行为,在保证大规模NB‑IoT网络中终端节点快速响应的基础上,能够将异常终端节点及时剔除,保证了系统的安全性和稳定性。
[0072] 图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)401、通信接口(Communications Interface)402、存储器(memory)403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信。处理器401可以调用存储器403中的逻辑指令,以执行如下方法:将NB‑IoT中的终端作为区块链中的终端节点,对于任一所述终端节点,根据该终端节点产生有效的区块和无效的区块的数量,确定该终端节点的状态;获取所述区块链中除该终端节点以外的其他终端节点根据该终端节点的状态对该终端节点的投票结果,并获取该终端节点的投票统计结果;根据该终端节点的投票统计结果确定该终端节点是否为代理节点,若是,则使用该终端节点收集所述区块链中所有终端节点之间的交易,并根据所述交易产生区块,并将产生的所述区块传递到所述其他终端节点。
[0073] 此外,上述的存储器403中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0074] 本实施例提供一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行上述各方法实施例所提供的方法,例如包括:将NB‑IoT中的终端作为区块链中的终端节点,对于任一所述终端节点,根据该终端节点产生有效的区块和无效的区块的数量,确定该终端节点的状态;获取所述区块链中除该终端节点以外的其他终端节点根据该终端节点的状态对该终端节点的投票结果,并获取该终端节点的投票统计结果;根据该终端节点的投票统计结果确定该终端节点是否为代理节点,若是,则使用该终端节点收集所述区块链中所有终端节点之间的交易,并根据所述交易产生区块,并将产生的所述区块传递到所述其他终端节点。
[0075] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0076] 以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0077] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0078] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。